2013-05-02 5 views
0

Я хочу, чтобы каждая строка выглядеть следующим образом:Заменить специальный символ или пробелы с -

"this-is-string-one" 

Так основная строка может содержать:

"This! is string, one" 

Так basicaly заменить, пробелы и символы!?. как с "-".

+0

http://stackoverflow.com/questions/668228/string-replacement-in-objective- c –

ответ

3

Нечто подобное лучше обрабатывается регулярным выражением:

NSString *someString = @"This! is string, one"; 
NSString *newString = [someString stringByReplacingOccurrencesOfString:@"[!?., ]+" withString:@"-" options: NSRegularExpressionSearch range:NSMakeRange(0, someString.length)]; 
NSLog(@"\"%@\" was converted to \"%@\"", someString, newString); 

Выход будет:

«! Это строка, один» был преобразован в «Это-это строка -one "

Регулярное выражение [!?., ]+ означает любую последовательность из одного или нескольких символов, перечисленных между квадратными скобками.

Update:

Если вы хотите укоротить любой замыкающий дефис, то вы можете сделать это:

if ([newString hasSuffix:@"-"]) { 
    newString = [newString substringToIndex:newString.length - 1]; 
} 
+0

могу я отрезать как-то, если - последнее: «sting-strong-» нужно «sting-stong» – user1832330

+0

@ user1832330 См. мой обновленный ответ на этот вопрос. – rmaddy

Смежные вопросы