Как обрезать и \n в NSMutableString

Как обрезать " " и "\n" в NSMutableString?


person marcy    schedule 21.11.2009    source источник


Ответы (3)


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

NSMutableString *mutable = [NSMutableString stringWithString:@" String to trim    \n"];

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\n|  | $|^ " options:0 error:nil];
[regex replaceMatchesInString:mutable options:0 range:NSMakeRange(0, [mutable length]) withTemplate:@""];
person ggrana    schedule 10.07.2013

Как насчет того, чтобы дважды вызвать replaceOccurrencesOfString:withString:options:range, заменив " ", а затем "\n" ничем?

person wadesworld    schedule 21.11.2009
comment
Это будет работать, но если вы не укажете диапазон, это менее эффективно, чем можно было бы надеяться, поскольку поиск этих символов будет выполняться во всей строке (дважды), а не только в концах, пока все такие символы не будут удалены. Он также плохо масштабируется до N символов — поэтому у нас есть NSCharacterSet. :-) - person Quinn Taylor; 21.11.2009

person    schedule
comment
Это хороший подход. Он возвращает неизменяемую строку, но на самом деле хорошей альтернативы нет. Также см. stackoverflow.com/questions/1422369 и отправьте копию ‹rdar://problem/7230868› ER: Need for -[NSMutableString trimCharactersInSet:] - person Quinn Taylor; 21.11.2009