3

単語を 2 回含む NSMutableString があります (例: /abc ...................... /abc)。

ここで、これら 2 つの /abc を /xyz に置き換えます。最初と最後の出現のみを置き換えたいのですが、他の出現はありません。

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

NSMutableString のこのインスタンス メソッドを見つけましたが、私の場合は使用できません。誰でも解決策はありますか??

4

1 に答える 1

5

最初に 2 つの範囲を見つけてから、それらを個別に置き換えることができます。

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 に答える