OC中Foundation框架之NSString、NSMutableString
2015-05-16 09:09
435 查看
创建方式
使用NSURL读写字符串
NSString 字符串的比较
NSRange使用
NSMutableString 的概念
NSMutableString特有的方法
注意事项:
1)直接赋值 NSString *str =@"abc"; 2)创建对象 NSString *str2 = [[NSString alloc]init]; str2 =@"abc" 3)格式化创建 NSString *str3=[NSString stringWithFromat :@"@",@"abc"]; 4)从文件中获取 NSString strand =[NSString stringWithContentsOfFile:@"/Users/apple/Desktop/test.txt" usedEncoding:NSUTF8StringEncoding error:&err]; 5)把字符串写入到文件 NSString *str7 = @"abc"; //路径 //原子性 str7 writeToFile :(NNString *) atomically :(BOOL) //编码格式 //错误信息 encoding:(NSStringEncoding) error:(NSError **); NSERROR *err=nil; BOOL flag=str7 writeToFile:@"/Users/apple/Desktop/test.txt" atomically:NO encoding : NSUTF8StringEncoding error:(&err]; if(flag){ NSLog(@"写入成功"); } if(err != nil){ NSLog(@"写入失败"); }else{ NSLog(@"写入成功"); }
使用NSURL读写字符串
//1)使用NSURL 写入字符串数据到文件中 NSURL *writeUrl = [NSURL URLWithString:@"file:///Users/apple/Desktop/1.txt"]; NSString *str =@"itcast"; BOOL isSucess = str writeToURL :writeUrl atomically:NO encoding:NSUTF8StringEncoding error:nil]; if(isSucess){ NSLog(@"写入成功"); } //2)使用NSURL读取字符串到文件 NSURL *readUrl =[NSURL URLWithString:@"file:////Users/apple/Desktop/1.txt"] NSString *straighten = [NSString stringWithContentsOfURL:readUrl encoding :NSUTF8StringEncoding error:nil]; NSLog(@"%@",str2);
NSString 字符串的比较
1)比较两个字符串大小 compare 方法:返回结果有三种: NSOrderedAscending str < str2 -1 NSOrderedSame str == str2 NSOrderedDescending str >str2 1 2)比较时指定条件 如果要忽略大小写的话,可以在options 里面加入参数 NSCaseInsensitiveSearch [str1 compare: str2 options:NSCaseInsensitiveSearch]; 条件有很多: NSCaseInsensitiveSearch: 不区分大小写字符 NSLiteralSearch: 进行完全比较,区分大小写(默认) NSNumericSearch: 比较字符串的字符个数,而不是字符值 ..... 等等 还有很多 3)判断是否相同 isEqualToString 4) NSString前后缀检查 判断字符串是否以另一个字符串开头 -(BOOL) hasPrefix:(NSString *) aString 以什么结尾 -(BOOL) hasSuffix :(NSString *) aString 5)字符串的查找 判断是否包含某个字符串,返回的为第一次出现的范围,NSRange包含两个成员 location :位置 length 长度, 如果查找不到,返回的Ranage的长度为0,位置为一个特别大得数 -(NSRange) rangeOfString:(NSString *) aString; 反向判断是否包含(加入条件 NSBackwardsSearch] -(NSRange) rangeOfString :(NSString *) options: NSBackwardsSearch if(range.location != NSNotFound) 6)字符串的截取 从指定位置from开始(包括指定位置的字符)到末尾 -(NSString *) substringFromIndex:(NSUInteger) from; 从开头截取至to的位置,不包含to位置的字符 -(NSString *) substringToIndex :(NSUInteger) to; 按照所给出的NSRange从字符串截取子串 -(NSString *)substringWithRange:(NSRange) range; 7)字符串的替换 用replacement替换target -(NSString *) stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement 8) 获取字符串的长度 -(NSUInteger) length; 9) 返回index位置对应的字符 -(unichar)characterAtIndex:(NSUInteger)index; 10)字符串和其他数据类型的转换 -(double) doubleValue -(float) floatValue -(int) intValue OC的字符串和C的字符串的互转 NSString *s4=@"helloworld"; const char *ss =[s4 UTF8String]; char ch[]="itcast"; NSString *ocString =[NSString stringWithUTF8String :ch]; 11)去除空格 去除所有的空格 [str stringByReplacingOccurrencesOfString:@" " withString"@""] 去除首尾的空格 [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 去除头尾的小写字母 lowercaseLetterCharacterSet 去除头尾的大写字母 uppercaseLetterCharacterSet 去掉头尾的指定字符串 characterSetWithCharactersInString:(NSString *)aString;
NSRange使用
NSRange是Foundation框架中比较常用的结构体, type struct _NSRange{ NSUInteger location; NSUInteger length; } //NSUInteger 的定义 typedef unsigned int NSUInteger; typedef unsigned long NSUInteger; 通常用来表示一个范围,字符串里的字符长度,数组中元素的范围 创建: 1)直接赋值 NSRange range = {2,5}; 2)先定义后赋值 NSRange range2; range2.location = 1; range2.length = 23; 3)使用NSMakeRange 创建一个NSRange类型的变量 NSRange range3 = NSMakeRange(45 ,3);
NSMutableString 的概念
NSMutableString类 继承NSString类,那么NSString提供的方法在NSMutableString中基本都可以使用,NSMutableString好比一个字符串链表,它可以任意的动态在字符串中添加字符串 ,删除字符串 ,指定位置插入字符串,使用它来操作字符串会更加灵活 --类似于java中的StringBuffer /StringBuilder
NSMutableString特有的方法
具有NSString的所有方法 创建一个空字符串 NSMutableString *str2 = [NSMutableString string]; 给字符串追加内容 [str2 appendString:@"welcome"]; 拼接一段格式化字符串到最后面 -(void) appendFormat:(NSString *)format,...; 从指定的range开始,删除字符 -(void) deleteCharactersInRange:(NSRange) range; 在loc这个位置插入aString -(void)insertString:(NSString *) aString atIndex:(NSUInteger)loc; 使用aString替换range范围内的字符串,一般不是以string开头的一般都不会产生一个新的字符串,replaceOccurrencesOfString方法不需要传范围参数 -(void)replaceCharactersInRange:(NSRange)range withString :(NSString *)aString; 替换需要传入range 通常配合rangeOfString 一起使用 NSRange rage =[str rangeOfString:@"itcast"];
注意事项:
1) NSMutableString *str =@"xxx"; //这种方式创建的是NSString而不是NSMutableString 2)NSMutableString的string属性:会将源对象的所有字符串都覆盖掉 .string 属性可以修改字符串的内容 例如: NSMutableString *str =[NSMutableString string]; [str appendString:@"itcast"]; str.string=@"a"; 3)位枚举,枚举值是2的0次方、1次方、2次方... String 的附带条件 options 所传入的就是位枚举, 所以可以直接输入 0 2 4等
相关文章推荐
- 黑马程序员--OC学习篇之Foundation框架中的NSString对象和NSMutableString对象
- OC学习篇之---Foundation框架中的NSString对象和NSMutableString对象
- OC中Foundation框架字符串NSString和NSMutableString的使用
- OC基础:Foundation框架之NSString和NSMutableString
- OC学习篇之---Foundation框架中的NSString对象和NSMutableString对象
- OC的Foundation框架-字符串(NSString与NSMutableString)
- OC本学习笔记Foundation框架NSString与NSMutableString
- Foundation框架—字符串NSString 和 NSMutableString
- Foundation框架---NSString 和 NSMutableString
- oc-Foundation框架-NSMutableString-常用方法
- ios Foundation框架中的可变和不可变对象NSString 和NSMutableString(一)
- OC学习笔记之Foundation框架NSString与NSMutableString
- Foundation框架学习之NSString和NSMutableString
- object-c中Foundation框架-NSString与NSMutableString
- 黑马程序员—Foundation框架之NSMutableString及NSString的其它用法
- 【黑马程序员】OC-Foundation框架—NSMutableString
- Foundation框架(NSString、NSMutableString)
- [Objective-C] 007_Foundation框架之NSString与NSMutableString
- 黑马程序员 oc随记 foundation框架 nsstring.NSmutable.nsarray与nsdictionay
- 【OC 第3课】NSString ,NSMutableString用法以及一些常用方法