Regex и NSCharacterSet здесь, чтобы помочь вам. Это решение обрезает начальные и конечные пробелы, а также несколько пробелов.
NSString *original = @" Hello this is a long string! ";
NSString *squashed = [original stringByReplacingOccurrencesOfString:@"[ ]+"
withString:@" "
options:NSRegularExpressionSearch
range:NSMakeRange(0, original.length)];
NSString *final = [squashed stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
Ведение журнала final
дает
"Hello this is a long string!"
Возможные альтернативные шаблоны регулярных выражений:
- Заменить только пробел:
[ ]+
- Заменить пробел и табуляцию:
[ \\t]+
- Заменить пробел, табуляции и новые строки:
\\s+
Общее представление
Простота расширения, производительности, количества строк кода и количества созданных объектов делает это решение подходящим.