如何从另一个字符串中替换NSMutableString中的字符串

时间:2010-09-13 09:53:34

标签: objective-c nsmutablestring

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

现在我想用/ xyz替换这两次出现的/ abc。我想只替换第一次和最后一次出现没有其他事件发生。

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

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

1 个答案:

答案 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"];
}