如何在Objective C中用另一个子串替换一个子串?

Joe*_*ner 1 substring objective-c nsstring

我想NSString用Objective C中的另一个子串替换子串.

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

        NSRange range = [string rangeOfString:substringIWantToReplace];
        NSString *substring = [string substringFromIndex:NSMaxRange(range)];
Run Code Online (Sandbox Code Playgroud)

但是当涉及到实际移除/替换它时,我有点困惑.我是否在使用另一个子串C++替换substring的C++方法?或者C方法如何替换c中的子串??在Objective-C上有一个相关的问题:子串和替换,但是有问题的字符串是一个URL,所以我认为我不能使用答案.

Dan*_*iil 5

我认为你的答案就在这里替换出现的NSString - iPhone: [response stringByReplacingOccurrencesOfString:@"aaa" withString:@"bbb"];vsnetnet也适用于任何字符串和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 );
Run Code Online (Sandbox Code Playgroud)