我想更换一个NSString
子与目的C.另一个子
我知道如何定位我要替换的子字符串:
NSRange range = [string rangeOfString:substringIWantToReplace];
NSString *substring = [string substringFromIndex:NSMaxRange(range)];
但是,当涉及到实际删除/替换它,我有点困惑。 难道我跟随在C ++方法用另一个子c更换子++ ? 或在C方法如何替换字符串在C? ? 有在一个相关的问题的Objective-C:子串和替换 ,但有问题的字符串是一个URL,所以我不认为我可以使用的答案。
我认为你的答案就在这里更换的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 );
这就是我如何检查一个串并替换/从NSString的删除字符串:
if([titleName rangeOfString:@"""].location != NSNotFound) {
titleName = [titleName stringByReplacingOccurrencesOfString:@""" withString:@"\""];
}