3

我有一个包含两次单词的 NSMutableString。(例如 /abc ...................... /abc)。

现在我想用/xyz 替换这两个/abc。我只想替换第一次和最后一次出现,而不是其他出现。

 - (NSUInteger)replaceOccurrencesOfString:(NSString *)target
                               withString:(NSString *)replacement
                                  options:(NSStringCompareOptions)opts 
                                    range:(NSRange)searchRange

我找到了 NSMutableString 的这个实例方法,但在我的情况下我无法使用它。有人有什么解决办法吗??

4

1 回答 1

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"];
}
于 2010-09-13T10:54:42.737 回答