如何用多个其他字符串替换多个字符串的出现次数[NSString]

s6l*_*A3I 6 iphone objective-c nsstring ios

NSString *string  = [myString stringByReplacingOccurrencesOfString:@"<wow>" withString:someString];
Run Code Online (Sandbox Code Playgroud)

我有这个代码.现在假设我的应用程序的用户输入了两个不同的字符串,我想用两个不同的其他字符串替换,我该如何实现呢?我不在乎它是否使用私有API,我正在为越狱平台开发.我的用户要么输入要么或者.我想用它们各自被替换的字符串替换那些字符串的出现:)

在此先感谢:P

das*_*ght 7

最简单的解决方案是运行stringByReplacingOccurrencesOfString两次:

NSString *string  = [[myString
    stringByReplacingOccurrencesOfString:@"<wow>" withString:someString1]
    stringByReplacingOccurrencesOfString:@"<boo>" withString:someString2];
Run Code Online (Sandbox Code Playgroud)


Noa*_*oon 6

dasblinkenlight和Matthias的答案都有效,但它们都会产生一些中间的NSStrings; 如果你不经常做这个操作,这不是一个真正的问题,但更好的方法看起来像这样.

NSMutableString *myStringMut = [[myString mutableCopy] autorelease];
[myStringMut replaceOccurrencesOfString:@"a" withString:somethingElse];
[myStringMut replaceOccurrencesOfString:@"b" withString:somethingElseElse];
// etc.
Run Code Online (Sandbox Code Playgroud)

然后您可以myStringMut像使用一样使用myString,因为NSMutableString是NSString子类.