NSMutableString基本概念
NSMutableString类 继承NSString类,那么NSString提供的方法在NSMutableString中基本都可以使用,NSMutableString好比一个字符串链表,它可以任意的动态在字符串中增、删、改、查,指定位置插入字符串,使用它来操作字符串会更加灵活
-
NSMutableString和NSString的区别
-
NSString是不可变的,里面的文字内容是不能进行修改的
NSMutableString是可变的,里面的文字内容可以随时更改
NSMutableString能使用NSString的所有方法
字符串的可变和不可变
-
不可变:指的是字符串在内存中占用的存储空间固定,并且存储的内容不能发生改变。
可变:指的是字符串在内存中占用的存储空间可以不固定,并且存储的内容可以被修改
NSMutableString常用方法
-(void)appendString:(NSString *)aString;// 拼接aString到最后
-(void)appendFormat:(NSString *)format,...;///拼接一段格式化字符串到最后面
-(void)deleteCharactersInRange:(NSRange)range;//删除range范围内的字符串,不包括指定位置
-(void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;//在loc这个位置中插入aString
-(void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString;//使用aString替换range范围内的字符串,一般不是以string开头的一般都不会产生一个新的字符串。replaceOccurrencesOfString方法不需要传范围参数。
使用注意事项
1.NSMutable易犯错误
//@"hello"这种方式创建的字符串始终是NSString,不是NSMutableString,所以下面的可变字符串的函数,无法操作字符串
NSMutableString * s1 = @"hello";
2.NSMutableString的string属性:会将源对象的所有字符串都覆盖掉。
.string属性可以修改字符串的内容
-
3.开发中到底使用NSString还是NSMutableString?
-
开发中绝大多数用的是NSString
只是如果需要做特殊处理的时候(截取、拼接、替换)等操作,才考虑NSMutableString。