【问题标题】:how to replace one substring with another in Objective C?如何在Objective C中用另一个子字符串替换一个子字符串?
【发布时间】:2012-12-18 11:22:24
【问题描述】:

我想用 Objective C 中的另一个子字符串替换 NSString 子字符串。

我知道如何找到要替换的子字符串:

        NSRange range = [string rangeOfString:substringIWantToReplace];
        NSString *substring = [string substringFromIndex:NSMaxRange(range)];

但是当谈到实际删除/更换它时,我有点困惑。我是否遵循Replace substring with another substring C++ 的 C++ 方法?还是how to replace substring in c? 的 C 方法? Objective-C: Substring and replace 有一个相关的问题,但是有问题的字符串是一个 URL,所以我认为我不能使用答案。

【问题讨论】:

    标签: objective-c nsstring substring


    【解决方案1】:

    我想你的答案在这里Replace occurrences of NSString - iPhone[response stringByReplacingOccurrencesOfString:@"aaa" withString:@"bbb"]; 也适用于任何字符串和 URL。

    如果您对 url 的百分比表示法感到担忧,并且想确保它会被正确替换,您可以先解码字符串,替换,然后编码:

    // decode
    NSString *path = [[@"path+with+spaces"
        stringByReplacingOccurrencesOfString:@"+" withString:@" "]
        stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    // replace
    path = [path stringByReplacingOccurrencesOfString:@"aaa" withString:@"bbb"]
    // encode
    path = CFURLCreateStringByAddingPercentEscapes(
                                                   NULL,
                                                   (CFStringRef)path,
                                                   NULL,
                                                   (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ",
                                                   kCFStringEncodingUTF8 );
    

    【讨论】:

    • 谢谢!实际上,我的意思是另一个问题中的字符串是一个 URL,而我的字符串不是。该问题的答案似乎基于它是一个 URL 的事实。但无论如何,你的回答给了我我所需要的——谢谢!
    【解决方案2】:

    这是我检查子字符串并从 NSString 替换/删除子字符串的方式:

    if([titleName rangeOfString:@"""].location != NSNotFound) {
         titleName = [titleName stringByReplacingOccurrencesOfString:@""" withString:@"\""];
    }
    

    【讨论】:

    • 非常有帮助,但其他回答者先到了这里,所以我不得不感谢他——不过,非常感谢。
    • 没问题,只是想展示使用 Objective-C 的内置方法完成这项任务是多么容易。
    猜你喜欢
    • 2011-06-06
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多