Удаление символов новой строки из NSString - PullRequest
48 голосов
/ 27 ноября 2009

У меня есть NSString, как это:

Hello 
World
of
Twitter
Lets See this
>

Я хочу преобразовать его в:

Hello World of Twitter Давайте посмотрим>

Как я могу это сделать? Я использую Objective-C на iPhone.

Ответы [ 5 ]

131 голосов
/ 27 ноября 2009

Разделить строку на компоненты и объединить их пробелом:

NSString *newString = [[myString componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] componentsJoinedByString:@" "];
85 голосов
/ 27 ноября 2009


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

myString = [myString stringByReplacingOccurrencesOfString:@"\n" withString:@" "];
9 голосов
/ 27 ноября 2009

Я использую

[...]
myString = [myString stringByReplacingOccurrencesOfString:@"\n\n" withString:@"\n"];
[...]

/ Paul

3 голосов
/ 19 июля 2016

Мой случай также содержит \r, в том числе \n, [NSCharacterSet newlineCharacterSet] не работает, вместо этого используется

htmlContent = [htmlContent stringByReplacingOccurrencesOfString:@"[\r\n]"
                                                     withString:@""
                                                        options:NSRegularExpressionSearch
                                                          range:NSMakeRange(0, htmlContent.length)];

решил мою проблему.

Кстати, \\s удалит все пробелы, чего не ожидается.

2 голосов
/ 06 ноября 2016

Предоставление версии @hallski ответа Swift 3.0 здесь:

self.content = self.content.components(separatedBy: CharacterSet.newlines).joined(separator: " ")

Предоставление Swift 3.0 версии ответа @Kjuly здесь (обратите внимание, что любое новое число заменяется одной строкой \ n. Я бы предпочел не использовать регулярные выражения, если кто-то может указать мне лучший способ):

self.content = self.content.replacingOccurrences(of: "[\r\\n]+", with: "\n", options: .regularExpression, range: Range(uncheckedBounds: (lower: self.content.startIndex, upper: self.content.endIndex)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...