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

Gre*_*pta 3 objective-c nsmutablestring

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

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

 - (NSUInteger)replaceOccurrencesOfString:(NSString *)target
                               withString:(NSString *)replacement
                                  options:(NSStringCompareOptions)opts 
                                    range:(NSRange)searchRange
Run Code Online (Sandbox Code Playgroud)

我发现NSMutableString的这个实例方法,但我不能在我的情况下使用它.有人有任何解决方案?

Geo*_*che 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"];
}
Run Code Online (Sandbox Code Playgroud)