Замена списка строк в строке (Objective-c 2.0) - PullRequest
2 голосов
/ 20 декабря 2011

Например, я хотел бы заменить все вхождения @ "a" и @ "b" в @ "abcdabcd" на @ "z".В настоящее время я делаю это с повторным вызовом stringByReplacingOccurencesOfString:withString::

NSString *s1 = @"abcdabcd";
NSString *s2 = [[s1 stringByReplacingOccurencesOfString:@"a" withString:@"z"]
                 stringByReplacingOccurencesOfString:@"b" withString:@"z"];

Какой способ лучше? Я не нашел аналогичных методов, которые бы заменяли массив строк.

Ответы [ 2 ]

6 голосов
/ 20 декабря 2011

Вы можете использовать регулярные выражения:

NSString *s2 =
[s1 stringByReplacingOccurrencesOfString:@"[ab]"
                              withString:@"z"
                                 options:NSRegularExpressionSearch
                                   range:NSMakeRange(0, s1.length)];
3 голосов
/ 20 декабря 2011

Существует также метод replaceOccurrencesOfString:withString:options:range: NSMutableString (поэтому вам не нужно создавать новый объект NSString для каждого вызова замены, который вы хотите сделать).Документация связана для вас.

...