多次替换字符串处理

原创
2015/08/19 19:41
阅读数 26

第一种(有发生替换):

NSString *s = @"sss";
NSString *x = [s stringByReplacingOccurrencesOfString:@"s" withString:@"x"];
NSLog(@"%@",x);


返回一个新的指针,内容是@"xxx"。新指针的retainCount是1,不可以手动release,会autorelease。



第二种(没有发生替换):

NSString *s = @"sss";
NSString *x = [s stringByReplacingOccurrencesOfString:@"y" withString:@"x"];
NSLog(@"%@",x);

因为没有发生替换,所以返回值还是原来的指针,内容还是@"sss"。这时候s的retainCount会被加1。
相当于

NSString *x = [[s retain]autorelease];



建议:

如果需要多次替换字符串中的字符,最好不要使用stringByReplacingOccurrencesOfString。应该使用NSMutableString的实例方法

NSString *s = @"sss";
NSString *x = [s stringByReplacingOccurrencesOfString:<#(nonnull NSString *)#> withString:<#(nonnull NSString *)#> options:<#(NSStringCompareOptions)#> range:<#(NSRange)#>]

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部