Objective-C-Tutorials

NSMutableString

可变字符串,继承自NSString

之前介绍的NSString为不可变字符串,任何操作都不能在原字符串上进行。而NSMutableString不同,作为可变字符串,可直接对原字符串进行编辑。

注:因为NSMutableString继承与NSString,所以NSString的方法,NSMutableString依然可用。他们的方法,最大的区别在于,NSString会返回新的字符串,而NSMutableString对原字符串处理,返回void

同样,对于NSMutableString也有很多常用方法,本讲将介绍:

初始化

使用NSString的几种初始化方法,依然可以对NSMutableString有效,写法如下:

NSMutableString *string1 = [NSMutableString string];
NSMutableString *string2 = [NSMutableString stringWithFormat:@"abc"];

下面介绍两种独有的:

// 给出初始长度,进行字符串的初始化(这个初始长度不用太准确,因为系统分配的内容会随着字符串长度而变动)
NSMutableString *string3 = [[NSMutableString alloc] initWithCapacity:4];
NSMutableString *string4 = [NSMutableString stringWithCapacity:4];

添加

[string2 appendString:@"def"]; // 从尾部追加字符串@"def"
[string2 appendFormat:@"%d", 9]; // 从尾部格式化追加字符串@"9"
[string2 insertString:@"000" atIndex:0]; // 在第0位插入字符串@"000"

删除

// 从0开始,删除3个字符
[string2 deleteCharactersInRange:NSMakeRange(0, 3)];

修改

// 按范围替换
[string2 replaceCharactersInRange:NSMakeRange(0, 3) withString:@"vvv"];
// 完全替换
[string2 setString:@"333"];