1

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

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

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

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

4

2 回答 2

6

我认为您的答案在这里替换出现的 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 );
于 2013-01-04T01:59:18.420 回答
3

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

if([titleName rangeOfString:@"""].location != NSNotFound) {
     titleName = [titleName stringByReplacingOccurrencesOfString:@""" withString:@"\""];
}
于 2013-01-04T02:03:35.660 回答