区别于NSString,可变字符串NSMutableString对象的所引用的字符串内容可以被修改,这种修改包括:删除、插入、替换等。
而NSString是NSMutableString的子类,本身并不能修改指向的字符串,只能改变指向的字符串。
Foundation提供了对于可变字符串对象的修改,现在看几个小需求。
1.在str字符串的第2个字符串的位置插入字符串replace
NSMutableString *str = [NSSMutableString stringWithString:@"today is June 22"];
NSString *replace = @"fighting";
[str insertString:replace atIndex:2];
2.追加tail到str
NSMutableString *tail = @"tomorrow is June 23";
[str appendString:tail];
3.使用NSRange删除指定范围的字符串
NSRange range = [str rangeOfString:@"June"];
if (range.location != NSNotFound) {
[str deletedCharactersInRange:range];
//[str deleteCharactersInRange:NSMakeRange(8,4);
NSLog(@"str = %@", str];
}
4.对字符串中的子串进行替换操作
// 把England替换成Argentina
NSString *replace = @"Argentina";
NSMutableString *source = @"The winner of FIFA CUP is England";
NSRange range = [source rangeOfString:@"England"];
if (range.location != NSNotFound) {
[source replaceCharactersInRange:rang
withString:replace];
NSLog(@"%@", source);
}
5.最后是把字符串中的字符全部替换
// 将XTULGQLEWOWXXLXXTUWP中的X全部替换成O
NSMutableString *beConfident = @"XTULGQLEWOWXXLXXTUWP"
NSString *replace = @"OV";
NSRange range = [beConfident rangeOfString:X];
while(range.location != NSNotFound) {
[beConfident replaceCharactersInRange:range withString:replace];
range = [beConfident rangeOfString:replace];
}