NSMutableString类可以用来创建可以更改字符的字符串对象。因为是NSString类的子类,所以可以使用NSString类的所有方法。
| 常见的NSMutableString方法 | |
| 方法 | 描述 |
| +(id) stringWithCapacity: size | 创建一个初始包含size字符的字符串 |
| -(id) initWithCapacity: size | 使用初始容量为size的字符来初始化字符串 |
| -(void) setString: nsstring | 将字符串设置为nsstring |
| -(void) appendString: nsstring | 在接收者的末尾附加nsstring |
| -(void) deleteCharactersInRange: range | 删除指定range中的字符 |
| -(void) insertString: nestling atIndex: i | 以索引i为起始位置插入nsstring |
| -(void) replaceCharactersInRange: range withString: nestling | 使用nsstring替换range指定的字符 |
| -(void) replaceOccurrencesOfString: nestling withString: nsstring2 options: opts range: range | 根据选项opts,在指定范围range中用nsstring2替换所有的nestling。选项可以是以下值的按位或组合:NSBackwardsSearch(查找从范围尾部开始)、NSAnchoredSearch(nsstring必须匹配范围的开始)、NSLiteralString(执行逐字符比较)以及NSCaseInsensitiveSearch(忽略大小写) |
示例
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *str1 = @"This is string A";
NSString *search, *replace;
NSMutableString *mstr;
NSRange substr;
// 从不可变字符串创建可变字符串
mstr = [NSMutableString stringWithString: str1];
NSLog(@"%@", mstr);
// 插入字符
[mstr insertString: @" mutable" atIndex: 7];
NSLog(@"%@", mstr);
// 插入末尾进行有效拼接
[mstr insertString: @" and string B" atIndex: [mstr length]];
NSLog(@"%@", mstr);
// 直接使用appendString
[mstr appendString: @" and string C"];
NSLog(@"%@", mstr);
// 根据范围删除子字符串
[mstr deleteCharactersInRange: NSMakeRange(16, 13)];
NSLog(@"%@", mstr);
// 查找然后将其删除
substr = [mstr rangeOfString: @"string B and "];
if (substr.location != NSNotFound) {
[mstr deleteCharactersInRange: substr];
NSLog(@"%@", mstr);
}
// 直接设置为可变的字符串
[mstr setString: @"This is string A"];
NSLog(@"%@", mstr);
// 替换一些字符
[mstr replaceCharactersInRange: NSMakeRange(8, 8) withString: @"a mutable string"];
NSLog(@"%@", mstr);
// 查找和替换
search = @"This is";
replace = @"An example of";
substr = [mstr rangeOfString: search];
if (substr.location != NSNotFound) {
[mstr replaceCharactersInRange: substr withString: replace];
NSLog(@"%@", mstr);
}
// 查找和替换所有的匹配项
search = @"a";
replace = @"X";
substr = [mstr rangeOfString: search];
/*while (substr.location != NSNotFound) {
[mstr replaceCharactersInRange: substr withString: replace];
substr = [mstr rangeOfString: search];
}*/
// 查找并全部替换,和上面的while方式效果相同
[mstr replaceOccurrencesOfString: search
withString: replace
options: nil
range: NSMakeRange(0, [mstr length])];
NSLog(@"%@", mstr);
}
return 0;
}