Удаление новых символов строки из NSString - программирование
Подтвердить что ты не робот

Удаление новых символов строки из NSString

У меня есть NSString:

Hello 
World
of
Twitter
Lets See this
>

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

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

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

4b9b3361

Ответ 1

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

NSString *newString = [[myString componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] componentsJoinedByString:@" "];

Ответ 2


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

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

Ответ 3

Я использую

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

/Paul

Ответ 4

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

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

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

Btw, \\s удалит все пробелы, которые не ожидаются.

Ответ 5

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

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)));