如何与另一个目标C替换一个子?(how to replace one substring with

2019-09-27 17:45发布

我想更换一个NSString子与目的C.另一个子

我知道如何定位我要替换的子字符串:

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

但是,当涉及到实际删除/替换它,我有点困惑。 难道我跟随在C ++方法用另一个子c更换子++ ? 或在C方法如何替换字符串在C? ? 有在一个相关的问题的Objective-C:子串和替换 ,但有问题的字符串是一个URL,所以我不认为我可以使用的答案。

Answer 1:

我认为你的答案就在这里更换的NSString的出现- iPhone : [response stringByReplacingOccurrencesOfString:@"aaa" withString:@"bbb"]; defenetly适用于任何字符串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 );


Answer 2:

这就是我如何检查一个串并替换/从NSString的删除字符串:

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


文章来源: how to replace one substring with another in Objective C?