目錄
1.1 設置字符串行間距
1.2 去除字符串前后的空格
1.3 字符計算
1.4 計算字符串高度
1.5 null nil 轉 @""
1.6 分割字符串
1.7 字符串比較大小
1.8 查找字符串位置
1.9 判斷前后綴
1.10 字符串提取
1.12 保留小數點后兩位
1.13 用0補全
1.14 %處理方法
1.15 "處理方法
1.16 獲取圖片類型
1.17 字符串的每一字符
1.1 設置字符串行間距
.h
+ (NSMutableAttributedString *)stringWithSpacing:(NSString *)string
LineSpacing:(int)num;
.m
+ (NSMutableAttributedString *)stringWithSpacing:(NSString *)string
LineSpacing:(int)num
{
//
NSMutableAttributedString *attributedString = [[NSMutableAttributedString
alloc] initWithString:string];
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle
alloc] init];
[paragraphStyle setLineSpacing:num];//調整行間距
[attributedString addAttribute:NSParagraphStyleAttributeName
value:paragraphStyle range:NSMakeRange(0, [string length])];
return attributedString;
}
1.2 去除字符串前后的空格
.h
/**
* 去除字符串前后的空格,判斷輸入的內容不是空格
*
* @param string 傳入需要設置的字符串
*
* @return 去除空格后的字符串
*/
.h
+ (NSString *)stringWithTrimming:(NSString *)string;
.m
+ (NSString *)stringWithTrimming:(NSString *)string
{
//去除空格
NSString *cleanString = [string stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
return cleanString;
}
1.3 字符計算
.h
/**
* 計算一個字符串相當于多少個字
*
* @param text 傳入的字符串
*
* @return 字符個數
*/
+ (NSUInteger)stringWithLength:(NSString *)text;
.m
+ (NSUInteger)stringWithLength:(NSString *)text
{
NSUInteger asciiLength = 0;
for (NSUInteger i = 0; i < text.length; i++) {
unichar uc = [text characterAtIndex: i];
asciiLength += isascii(uc) ? 1 : 2;
}
NSUInteger unicodeLength = asciiLength / 2;
if(asciiLength % 2) {
unicodeLength++;
}
return unicodeLength;
}
1.4 計算字符串高度
.h
/**
* 計算字符串高度
*
* @param string 需要計算的字符串
* @param font label設置的字大小
* @param width 需要計算內容的寬度
*
* @return CGSize類型
*/
.h
+ (CGSize)stringWithHeight:(NSString *)string
withFont:(UIFont *)font
withWidth:(CGFloat)width;
.m
+ (CGSize)stringWithHeight:(NSString *)string
withFont:(UIFont *)font
withWidth:(CGFloat)width
{
CGSize textBlockMinSize = CGSizeMake(width, 10000);
CGSize size = CGSizeZero;
NSStringDrawingOptions options = NSStringDrawingTruncatesLastVisibleLine
| NSStringDrawingUsesLineFragmentOrigin
| NSStringDrawingUsesFontLeading;
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle
alloc] init];
[paragraphStyle setLineSpacing:1];//調整行間距
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:
font,NSFontAttributeName,paragraphStyle,NSParagraphStyleAttributeName, nil];
size = [string boundingRectWithSize:textBlockMinSize
options:options
attributes:attributes
context:nil].size;
return CGSizeMake(ceilf(size.width), ceilf(size.height));
}
1.5 null nil 轉 @""
.h
+ (NSString*)stringWithNull:(NSString *)string;
.m
// 轉換空串
+(NSString*)stringWithNull:(NSString *)string{
if ([string isEqual:[NSNull null]]) {
return @"";
}else if ([string isKindOfClass:[NSNull class]]){
return @"";
}else if (string==nil){
return @"";
}
return string;
}
1.6 分割字符串
//用空格分割
NSString *string=@"i am a person";
NSArray *array=[string componentsSeparatedByString:@" "];
//多符號切割
NSString *str=@"1(333·)333 3333";
NSArray *arr=[str componentsSeparatedByCharactersInSet:[NSCharacterSet
characterSetWithCharactersInString:@"()· "]];
1.7 字符串比較大小
//字符串會一個字符一個字符比較,返回類型1 0 -1
1 表示string1 大于 string2
0 表示string1 等于 string2
-1 表示string1 小于 string2
例1:@"9"大于@"75"
NSString *string1 = @"9";
NSString *string2 = @"75";
int result = [string1 compare:string2];
NSLog(@"%d",result);//返回值是整形:1
例2:@"72"小于@"75"
NSString *string1 = @"72";
NSString *string2 = @"75";
int result = [string1 compare:string2];
NSLog(@"%d",result);//返回值是整形:-1
例3:@"8"等于@"8"
NSString *string1 = @"8";
NSString *string2 = @"8";
int result = [string1 compare:string2];
NSLog(@"%d",result);//返回值是整形:0
例4:不區分大小寫比較
NSString *string1 = @"a";
NSString *string2 = @"A";
int result = [string1 compare:string2 options:NSCaseInsensitiveSearch];
NSLog(@"%d",result); //返回值是整形:0
1.8 查找字符串位置
NSString *str = @"lemon";
NSRange range = [str rangeOfString:@"em"];
NSLog(@"location = %lu, length = %lu",range.location,range.length);
1.9 判斷前后綴
//1.前綴
NSString *str = @"http://www.baidu.com";
BOOL isHave = [str hasPrefix:@"http://"];
NSLog(@"%d",isHave);
//2.后綴
NSString *str = @"http://www.baidu.com";
BOOL isHave = [str hasSuffix:@"com"];
NSLog(@"%d",isHave);
1.10 字符串提取
//例1:從0開始,到第5個
NSString *str = @"http://www.baidu.com";
NSString *topStr = [str substringToIndex:5];
NSLog(@"%@",topStr);
http:
//例2:從第5個到最后一個
NSString *str = @"http://www.baidu.com";
NSString *endStr = [str substringFromIndex:5];
NSLog(@"%@",endStr);
//www.baidu.com
//例3:從第2個到第7個
NSString *str = @"http://www.baidu.com";
NSString *rangeStr = [str substringWithRange:NSMakeRange(2, 7)];
NSLog(@"%@",rangeStr);
tp://ww
1.11 UTF8轉碼
NSString* str = [str stringByAddingPercentEscapesUsingEncoding:
NSUTF8StringEncoding];
1.12 保留小數點后兩位
NSString *string = [NSString stringWithFormat:@"%.2f",M_PI];
//輸出結果是: 3.14
NSLog(@"%@", string);
1.13 用0補全
NSInteger count = 5;
//02代表:如果count不足2位 用0在最前面補全(2代表總輸出的個數)
NSString *string = [NSString stringWithFormat:@"%02zd",count];
//輸出結果是: 05
NSLog(@"%@", string);
1.14 %處理方法
NSInteger count = 50;
//%是一個特殊符號 如果在NSString中用到%需要如下寫法
NSString *string = [NSString stringWithFormat:@"%zd%%",count];
//輸出結果是: 50%
NSLog(@"%@", string);
1.15 "處理方法
NSInteger count = 50;
//"是一個特殊符號, 如果在NSString中用到"需要用\進行轉義
NSString *string = [NSString stringWithFormat:@"%zd\"",count];
//輸出結果是: 50"
NSLog(@"%@", string);
1.16 獲取圖片類型
- (NSString *)contentTypeForImageData:(NSData *)data {
uint8_t c;
[data getBytes:&c length:1];
switch (c) {
case 0xFF:
return @"jpeg";
case 0x89:
return @"png";
case 0x47:
return @"gif";
case 0x49:
case 0x4D:
return @"tiff";
case 0x52:
if ([data length] < 12) {
return nil;
}
NSString *testString = [[NSString alloc] initWithData:
[data subdataWithRange:NSMakeRange(0, 12)]
encoding:NSASCIIStringEncoding];
if ([testString hasPrefix:@"RIFF"] && [testString
hasSuffix:@"WEBP"])
{
return @"webp";
}
return nil;
}
return nil;
}
1.17 獲取字符串的每一字符
- (NSArray *)words:(NSString *)string;
{
#if ! __has_feature(objc_arc)
NSMutableArray *words = [[[NSMutableArray alloc] init] autorelease];
#else
NSMutableArray *words = [[NSMutableArray alloc] init];
#endif
const char *str = [string cStringUsingEncoding:NSUTF8StringEncoding];
char *word;
for (int i = 0; i < strlen(str);) {
int len = 0;
if (str[i] >= 0xFFFFFFFC) {
len = 6;
} else if (str[i] >= 0xFFFFFFF8) {
len = 5;
} else if (str[i] >= 0xFFFFFFF0) {
len = 4;
} else if (str[i] >= 0xFFFFFFE0) {
len = 3;
} else if (str[i] >= 0xFFFFFFC0) {
len = 2;
} else if (str[i] >= 0x00) {
len = 1;
}
word = malloc(sizeof(char) * (len + 1));
for (int j = 0; j < len; j++) {
word[j] = str[j + i];
}
word[len] = '\0';
i = i + len;
NSString *oneWord = [NSString stringWithCString:word encoding:NSUTF8StringEncoding];
free(word);
[words addObject:oneWord];
}
return words;
}