iOS常用---NSString,NSMutabuleString
普通的创建字符串:
1 NSString *string =[[NSString alloc]init]; //创建一个空的字符串,即 @“”
一 、字符串读取本地文件:
参数一: 文件地址
参数二: 文件内容的下标,如"4" 或者 转换格式,如"NSUTF8StringEncoding"
参数三: 此处需要填写一个二级指针NSError参数,可以创建一个空的NSError对象填写进来,如果用不上直接填写'nil'];
补充:如果在一些时候遇到有NSError型的参数时,只需要填补一个NSError型空对象即可,如:
NSError *error =nil; //定义一个NSError型空对象
1 NSString *stringFile =[[NSString alloc]initWithContentsOfFile:@"/user/desck/ios..." encoding:NSUTF8StringEncoding error:&error];//别忘了error前添加取地址符'&' 2 // 当读取文件时,error依然为nil,则读取成功,如果error有值,则读取失败,(没有此文件,或路径不正确等原因...)
二、字符串访问网络文件:
// 字符串读取本地文件
// 参数一: 文件地址
// 参数二: 文件内容的下标,如"4" 或者 转换格式,如"NSUTF8StringEncoding"
// 参数三: 此处需要填写一个二级指针NSError参数,可以创建一个空的NSError对象填写进来,如果用不上直接填写'nil'];
// 补充:如果在一些时候遇到有NSError型的参数时,只需要填补一个NSError型空对象即可,如:
1 // NSError *error2 =nil;//定义一个NSError型空对象 2 3 // NSURL *url =[NSURL URLWithString:@"www.baidu.com"]; 4 5 // NSString *stringurl =[[NSString alloc]initWithContentsOfURL:url encoding:4 error:&error2];//别忘了error前添加取地址符'&',当读取文件时,error依然为nil,则读取成功,如果error有值,则读取失败,(没有此文件,或路径不正确等原因...)
三、字符串拼接,格式化字符串
NSString *str =@"hello"; int a =123; NSString *strFormat =[NSString stringWithFormat:@"www.%@.%d",str,a];//拼接 NSLog(@"aaaa%@",strFormat);
四、 字符串的比较
// 比较有两种方式"compare" 与 "isEqualToString"
compare 比较:
1 NSString *s1 =@"123"; 2 NSString *s2 =@"234"; 3 NSComparisonResult compar =[s1 compare:s2];//"compare"方法里还有两个方法,可以根据需要使用,如比较字符串中某个范围的字符串.... 4 NSLog(@"%ld",(long)compar); //左边比右边大结果为正数,右边比左边大为负数,相同为0
isEqualToString 比较:
1 // 直接判断两个是否相同 2 if ([s1 isEqualToString:s2]) { 3 NSLog(@"相同"); 4 }
五、 根据 首/尾 字符串做判断条件:
1 NSString *path =@"http//:www.hehkjdhsuh.com.jpg.bat"; 2 BOOL istrue1 =[path hasSuffix:@"http//"]; //判断首部 3 BOOL istrue2 =[path hasPrefix:@".jpg"]; //判断尾部
六、字符串截取的几种方式:
1 NSString *str =@"abcdefghijklmn"; 2 3 // “NSRange”是结构体,包含了 (范围)location (长度)length 两个属性; 4 // 一、 查询范围 5 NSRange range1 =[str rangeOfString:@"c"];//在字符串中找到@"c"的范围(2,1) 6 // 二、 锁定范围截取 7 NSRange ranges =NSMakeRange(2, 3);// 设置范围
8 NSString *strs =[str substringWithRange:ranges]; // 获取从第2个开始,长度为3的字符串
也可以动态的循环遍历使用
NSString *word = [text substringWithRange:NSMakeRange(i, 1)]; //for循环中根据'i'的变化每次截取一位
9 // 三、从第几个开始截取 10 NSString *s =[str substringFromIndex:2];//从第某个位置开始截取到最后 11 // 四、从其中某个字符开始 12 // NSCaseInsensitiveSearch = 1 //不区分大小写样式 13 // NSLiteralSearch = 2, // 文字搜索 14 // NSBackwardsSearch = 4, // 向后搜索 15 // NSAnchoredSearch = 8, //锚定 16 // NSNumericSearch = 64, //数字
五、从某个具体的字符开始
17 // NSRange r =[str rangeOfString:从字符串中哪一个字符开始 options:搜索方式 range:搜索范围]; 18 // 如下: 19 NSRange rangee =[str rangeOfString:@"d" options:0 range:range1];
六、 字符串写入文件
1 // 字符串写入文件的方法: 2 NSString *st =@"12345,上山打老虎"; 3 NSError *errors =nil; 4 // BOOL isture =[st writeToFile:文件路径 atomically:YES encoding:NSUTF8StringEncoding error:errors];
七、字符串的替换
1 NSString *str =@"123123123"; 2 NSString *str2 =[str stringByReplacingOccurrencesOfString:@"1" withString:@"A"]; 3 NSLog(@"%@",str2);//结果:A23A23A23
八、 删除字符串两边的不需要的东西(只会去掉两边的,中间的不会去掉)
1 // 例如:去掉空格 2 NSString * str=@" 4i1234 "; 3 str =[str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 4 // 例如:去掉两边的 4 5 str =[str stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"4"]]; 6 NSLog(@"%@",str);//结果:i123
九、可变字符串 NSMutbulString-----------------------------------------------------------------------------
1 NSMutableString *Mstr =[[NSMutableString alloc]initWithString:@"GG"];
// 增: 增天字符串内容 2 2 [Mstr appendString:@"hello"];//可变字符串的增加 3 3 [Mstr appendString:@"123"]; 4 4 NSLog(@"%@",Mstr);//结果:GGhello123 5 6 // 格式化可变字符串 7 8 [Mstr appendFormat:@"~ %@ ~",Mstr]; 9 10 结果:GGhello123~ GGhello123~ ~ 11 12 [Mstr insertString:@"hehe" atIndex:2]; //在2号位置插入字符串 13 14 NSLog(@"%@",Mstr); //结果:GGhehehello123~ GGhello123~ ~ 15 // 删:把字符串中某些内容删掉 16 [Mstr deleteCharactersInRange:NSMakeRange(2, 4)]; //删除“hehe” 17 18 NSLog(@"%@",Mstr); //结果:GGhello123~ GGhello123~ ~ 19 20 // 改: 把字符串的某些内容替换掉 21 22 [Mstr replaceCharactersInRange:NSMakeRange(0, 10) withString:@"www."]; 23 24 NSLog(@"%@",Mstr); //结果:www.~ GGhello123~ ~