【问题标题】:Replacing list of strings in a string (Objective-c 2.0)替换字符串中的字符串列表(Objective-c 2.0)
【发布时间】:2011-12-19 23:08:19
【问题描述】:

例如,我想将@"abcdabcd" 中所有出现的@"a" 和@"b" 替换为@"z"。我目前正在重复调用stringByReplacingOccurencesOfString:withString:

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

有什么更好的方法?我没有找到任何需要替换字符串数组的类似方法。

【问题讨论】:

    标签: objective-c nsstring replace


    【解决方案1】:

    你可以使用正则表达式:

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

    【讨论】:

    • (如果您的目标是 OS X 10.7+/iOS 4.0+。)
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2010-10-14
      • 2011-07-28
      • 1970-01-01
      • 2021-05-22
      • 1970-01-01
      • 2013-05-01
      • 2017-06-22
      • 1970-01-01
      • 2011-07-10
      相关资源
      最近更新 更多