У меня есть NSString
:
Hello
World
of
Twitter
Lets See this
>
Я хочу преобразовать его в:
Hello World of Twitter Давайте посмотрим это >
Как я могу это сделать? Я использую Objective-C на iPhone.
У меня есть NSString
:
Hello
World
of
Twitter
Lets See this
>
Я хочу преобразовать его в:
Hello World of Twitter Давайте посмотрим это >
Как я могу это сделать? Я использую Objective-C на iPhone.
Разделите строку на компоненты и соедините их пробелом:
NSString *newString = [[myString componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] componentsJoinedByString:@" "];
Разделение строки на компоненты и воссоединение с ними - очень длинный способ сделать это. Я тоже использую тот же метод, о котором говорил Павел. Вы можете заменить любые вхождения строки. В дополнение к тому, что сказал Пол, вы можете заменить новые символы строки такими пробелами:
myString = [myString stringByReplacingOccurrencesOfString:@"\n" withString:@" "];
Я использую
[...]
myString = [myString stringByReplacingOccurrencesOfString:@"\n\n" withString:@"\n"];
[...]
/Paul
Мой случай также содержит \r
, в том числе \n
, [NSCharacterSet newlineCharacterSet]
не работает, вместо этого, используя
htmlContent = [htmlContent stringByReplacingOccurrencesOfString:@"[\r\n]"
withString:@""
options:NSRegularExpressionSearch
range:NSMakeRange(0, htmlContent.length)];
решил мою проблему.
Btw, \\s
удалит все пробелы, которые не ожидаются.
Предоставление 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)));