1、NSString1.字符串的创建 //创建一个新的空字符串NSstring *string= [NSstringstring]//初始化一个字符串,在赋值NSString *string=[[NSString alloc] init];string=@"tianqi";
NSstring*string=@"hello";
NSString*string= [NSString stringWithString:@"hello world"];
NSString*string= [[NSString alloc] initWithString:@"hello world!"];
NSString*str = [stringstringByAppendingString:@"\nttt"];//把C的字符串转化为OC的字符串NSString *str = [[NSString alloc] initWithUTF8String:"hello world"];
NSString*str2 = [NSString stringWithUTF8String:"hello world"];//用格式化字符串初始化 可完成字符串的拼接以及完成C的字符串与OC的字符串的转化inta =123;
NSString*str = [[NSString alloc]initWithFormat:@"a = %d %s%@", a,"abcd",@"efg"];
NSString*str3 = [NSString stringWithFormat:@"%s","hello world"];
2.字符串的转换NSString * str =@"hello";constchar*p = [str UTF8String];//将OC字符串转化为C的字符串str=@"123";inta = [str intValue];//将数字串转化成整型数据[str floatValue];//将数字串转化成float型[str doubleValue];//将数字串转化成double型//结构体 输出//结构体 [点] 转换字符串NSString *str =NSStringFromPoint(point);//结构体 [尺寸] 转换字符串NSString *str =NSStringFromSize(size);//结构体 [矩形] 转换字符串NSString *str = NSStringFromRect(rect);
3.字符串大小写转换//全部转为大写//结果 ABC[@"abc"uppercaseString]//全部转为小写//结果 bcd[@"BCD"lowercaseString]//首字母大写//结果 Acb[@"acb"capitalizedString]
4.字符串比较//比较两个字符串内容是否相同//相等返回 yes 不相等返回 noBOOL b =[str isEqualToString:str2];//忽略大小写进行比较NSComparisonResult result = [stringcaseInsensitiveCompare:str];
NSComparisonResult result= [stringlocalizedCaseInsensitiveCompare:str];//两个字符串内容比较//NSComparisonResult result = {NSOrderedAscending, NSOrderedSame,NSOrderedDescending}//NSOrderedAscending 右边 > 左边 == -1//NSOrderedSame 内容相同 == 0//NSOrderedDescending 左边 > 右边 == 1NSComparisonResult result=[str compare:str2];
NSComparisonResult result= [stringcompare:@"taojian"options:NSCaseInsensitiveSearch];
NSComparisonResult result= [stringcompare:@"taojian"options:NSCaseInsensitiveSearch range:NSMakeRange(0,string.length)];
NSComparisonResult result= [stringcompare:@"taojian"options:NSCaseInsensitiveSearch range:NSMakeRange(0,string.length) locale:nil];
NSComparisonResult result= [stringlocalizedCompare:str];
options://枚举参数enum{
NSCaseInsensitiveSearch=1,//不区分大小写比较NSLiteralSearch =2,//区分大小写比较NSBackwardsSearch =4,//从字符串末尾开始搜索NSAnchoredSearch =8,//搜索限制范围的字符串NSNumbericSearch =64//按照字符串里的数字为依据,算出顺序。例如 Foo2.txt < Foo7.txt < Foo25.txt//以下定义高于 mac os 10.5 或者高于iphone 2.0 可用 ,NSDiacriticInsensitiveSearch =128,//忽略 "-" 符号的比较NSWidthInsensitiveSearch =256,//忽略字符串的长度,比较出结果NSForcedOrderingSearch =512//忽略不区分大小写比较的选项,并强制返回 NSOrderedAscending 或者 NSOrderedDescending//以下定义高于 iphone 3.2 可用 ,///只能应用于 rangeOfString:..., stringByReplacingOccurrencesOfString:...和 replaceOccurrencesOfString:... 方法。///使用通用兼容的比较方法,如果设置此项,可以去掉 NSCaseInsensitiveSearch 和 NSAnchoredSearcNSRegularExPRessionSearch =1024}
5.字符串搜索//判断字符串是否以abc开头[@"abcdfa"hasprefix:@"abc"];//判断字符串是否bcd结尾[@"adbcd"hasSuffix:@"bcd"];//判断字符串是否包含指定字符串,返回位置和长度NSRange range = [@"123456"rangeOfString:@"456"];//反向搜索NSRange range = [@"123456456qweasasd456"rangeOfString:@"456"options:NSBackwardsSearch];//指定范围进行搜索NSRange range = NSMakeRange(0,9);
range= [@"123456456qweasasd456"rangeOfString:@"456"options:NSBackwardsSearch range:range];//找与之开头相同的字符NSString *string=@"fg s abcdefg hijklmn s d \n fdsgf";
NSString*str = [stringcommonPrefixWithString:@"fg"options:NSLiteralSearch];
6. 字符串截取NSString * str5 =@"helloworld";
NSString* ptr1 = [str5 substringToIndex:2];//字符串抽取 从下标0开始到4 不包括4NSString * ptr2 = [str5 substringFromIndex:4];//从下标5开始抽取到字符串结束 包括5NSRange range1 = {6,2};//结构体初始化NSString * ptr3 = [str5 substringWithRange:range1];//在range指定范围内抽取NSString * ptr4 = [str5 substringWithRange:NSMakeRange(6,2)];//NSMakeRange可以生成一个结构体
7.字符串的遍历//根据\n遍历NSString *string=@"s abcdefg hijklmn s d \n fdsf";//根据\n一行一行的打印[stringenumerateLinesUsingBlock:^(NSString *line, BOOL *stop)
{
NSLog(@"\n%@",line);
}
];//根据 条件options 遍历NSString *string=@"s abcdefg hijklmn s d";
NSMutableString* mutableString = [NSMutableStringstring];//NSStringEnumerationByWords:将string按空格分开,并且会自动清理首尾的空格//这个方法会把中间多余的空格也清理掉,比如上面的字符串,s和d之间有两个空格,会变成一个空格[stringenumerateSubstringsInRange:NSMakeRange(0,string.length) options:NSStringEnumerationByWords usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop)
{
[mutableString appendFormat:@"%@",substring];
}];//删除我们添加的末尾的一个空格[mutableString deleteCharactersInRange:NSMakeRange(outputString.length-1,1)];
8.路径操作与数组操作//用指定字符串分割字符串,返回一个数组NSArray *array = [@"1,2,3,4,5,6"componentsSeparatedByString:@","];//根据空格拆分NSArray *array = [stringcomponentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];//将数组中的字符串组合成一个文件路径NSMutableArray *components =[NSMutableArray array];
[components addObject:@"Users"];
[components addObject:@"CentralPerk"];
[components addObject:@"Desktop"];
NSString*path =[NSString pathWithComponents:components];
NSLog(@"%@",path);//Users/CentralPerk/Desktop//将一个路径分割成一个数组NSArray *array1 =[path pathComponents];
NSLog(@"%@",array1);//判断是否为绝对路径(依据:是否以'/'开始)path =@"/Users/CentralPerk/Desktop";
NSLog(@"%i",[path isAbsolutePath]);//获取最后一个目录NSLog(@"%@",[path lastPathComponent]);//删除最后一个目录NSLog(@"%@",[path stringByDeletingLastPathComponent]);//拼接一个目录NSLog(@"%@",[path stringByAppendingPathComponent:@"aaa"]);//Users/CentralPerk/Desktop/aaaNSLog(@"%@",[path stringByAppendingString:@"aaa"]);//Users/CentralPerk/DesktopaaaNSLog(@"%@",[path stringByAppendingFormat:@"%@%@",@"b",@"c"]);//Users/CentralPerk/Desktopbc
9.文件扩展名//拓展名出来//获取拓展名,不带.NSString *str2 =@"Users/CentralPerk/Desktop/test.txt";
NSLog(@"%@",[str2 pathExtension]);//添加拓展名,不需要带.NSLog(@"%@",[str2 stringByAppendingPathExtension:@"mp3"]);//删除拓展名,带.一块删除NSLog(@"%@",[str2 stringByDeletingPathExtension]);
10.文件操作//将字符串设置为path制定的文件的内容-(id) initWithContentsOfFile:path encoding:enc error:err//创建一个新字符串并将其设置为path指定的文件的内容,使用字符编码enc,如果非零,则返回err中错误+(id) stringWithContentsOfFile:path encoding:enc error:err// 将字符串设置为url(NSURL*)url的内容,使用字符编码enc,如果非零,则返回err中的错误-(id) initWithContentsOfURL:url encoding:enc error:err//创建一个新的字符串,并将其设置为url的内容,使用字符编码enc,如果非零,则返回err中的错误+(id) stringWithContentsOfURL:url encoding:enc error:err
11.补充//求字符串长度[str1 length]//获取字符串中的字符[str1 characterAtIndex:1]//清楚左右两段的空格NSString *str = [stringstringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];//在字符串后面补0NSString *str = [stringstringByPaddingToLength:12withString:@"0"startingAtIndex:0];
2、NSMutableString//将不可变的字符串转换为可变的字符串NSMutableString * str = [[NSMutableString alloc]initWithString:@"hello world"];//在指定下标为2的(不要越界)位置插入013字符串[str insertString:@"013"atIndex:2];//在字符串末尾追加字符串taotao[str appendString:@"taotao"];//从0位置删除2个字符[str deleteCharactersInRange:NSMakeRange(0,2)];//给字符串重新赋值[str setString:@"yintian"];//将3位置后1个字符替换成ios字符串[str replaceCharactersInRange:NSMakeRange(3,1) withString:@"ios"];//根据选项 opts ,使用指定 range 中的nsstring2 替换所有的 nsstring-(void)replaceOccurrencesOfString:nsstring withString:nsstring2 options:opts range:range