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

Sun*_*day 2 replace objective-c nsstring

例如,我想用@"z"替换@"abcdabcd"中所有出现的@"a"和@"b".我正在这样做,反复呼吁stringByReplacingOccurencesOfString:withString::

NSString *s1 = @"abcdabcd";
NSString *s2 = [[s1 stringByReplacingOccurencesOfString:@"a" withString:@"z"]
                 stringByReplacingOccurencesOfString:@"b" withString:@"z"];
Run Code Online (Sandbox Code Playgroud)

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

Nic*_*idt 6

您可以使用正则表达式:

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

  • (如果您的目标是OS X 10.7 +/iOS 4.0+.) (3认同)