替换字符串中的字符串列表(Objective-c 2.0)

时间:2011-12-19 23:08:20

标签: objective-c nsstring replace

例如,我想用@“z”替换@“abcdabcd”中所有出现的@“a”和@“b”。我正在这样做,重复调用stringByReplacingOccurencesOfString:withString:

NSString *s1 = @"abcdabcd";
NSString *s2 = [[s1 stringByReplacingOccurencesOfString:@"a" withString:@"z"]
                 stringByReplacingOccurencesOfString:@"b" withString:@"z"];

什么是更好的方式?我没有找到任何类似的方法来取代字符串数组。

2 个答案:

答案 0 :(得分:6)

您可以使用正则表达式:

NSString *s2 =
[s1 stringByReplacingOccurrencesOfString:@"[ab]"
                              withString:@"z"
                                 options:NSRegularExpressionSearch
                                   range:NSMakeRange(0, s1.length)];

答案 1 :(得分:3)

还有NSMutableString的replaceOccurrencesOfString:withString:options:range:方法(因此您不必为要进行的每个替换调用创建新的NSString对象)。为您链接的文档。