我想用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有一个相关问题,但有问题的字符串是一个网址,所以我认为我不能使用这些答案。
答案 0 :(得分:5)
我认为你的回答是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 );
答案 1 :(得分:3)
这是我检查子字符串并从NSString中替换/删除子字符串的方法:
if([titleName rangeOfString:@"""].location != NSNotFound) {
titleName = [titleName stringByReplacingOccurrencesOfString:@""" withString:@"\""];
}