我有一个包含两次单词的NSMutableString。(例如/ abc ...................... / abc)。
现在我想用/ xyz替换这两次出现的/ abc。我想只替换第一次和最后一次出现没有其他事件发生。
- (NSUInteger)replaceOccurrencesOfString:(NSString *)target
withString:(NSString *)replacement
options:(NSStringCompareOptions)opts
range:(NSRange)searchRange
我找到了NSMutableString的这个实例方法,但在我的情况下我无法使用它。 任何人有任何解决方案??
答案 0 :(得分:5)
您可以先找到两个范围,然后单独替换它们:
NSMutableString *s = [NSMutableString stringWithString:@"/abc asdfpjklwe /abc"];
NSRange a = [s rangeOfString:@"/abc"];
NSRange b = [s rangeOfString:@"/abc" options:NSBackwardsSearch];
if ((a.location == NSNotFound) || (b.location == NSNotFound)) {
// at least one of the substrings not present
} else {
[s replaceCharactersInRange:a withString:@"/xyz"];
[s replaceCharactersInRange:b withString:@"/xyz"];
}