从NSString中删除换行符

y r*_*rao 49 string iphone objective-c ios

NSString喜欢这样的:

Hello 
World
of
Twitter
Lets See this
>
Run Code Online (Sandbox Code Playgroud)

我想将其转换为:

Twitter的Hello World让我们看到这个>

我怎样才能做到这一点?我在iPhone上使用Objective-C.

hal*_*ski 133

将字符串拆分为组件并按空格连接:

NSString *newString = [[myString componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] componentsJoinedByString:@" "];
Run Code Online (Sandbox Code Playgroud)

  • -stringByTrimmingCharactersInSet将仅从字符串的开头和结尾删除字符 (2认同)
  • 如果你需要处理所有类型的换行符,这比`stringByReplacing`更好. (2认同)

imn*_*mnk 85


将字符串拆分为组件并重新加入它们是一种非常冗长的方法.我也使用Paul提到的相同方法.您可以替换任何字符串出现.继Paul所说,你可以用这样的空格替换新的行字符:

myString = [myString stringByReplacingOccurrencesOfString:@"\n" withString:@" "];
Run Code Online (Sandbox Code Playgroud)

  • 这不一定能完成这项工作 - 至少你可能想要包括\ r \n.`[NSCharacterSet newlineCharacterSet]`是"包含换行符(U + 000A-U + 000D,U + 0085)的字符集",所以它更彻底.http://en.wikipedia.org/wiki/Newline (7认同)
  • 这个答案是最好的,因为它非常清楚发生了什么(所有换行符被空格替换)并且不需要创建无关的数组.y ramesh rao,你真的应该接受最能解决问题的答案,鼓励人们继续回答你的问题. (2认同)
  • 怪我们的祖先创造了这么多换行符。如此愚蠢。 (2认同)

Pau*_*len 9

我正在使用

[...]
myString = [myString stringByReplacingOccurrencesOfString:@"\n\n" withString:@"\n"];
[...]
Run Code Online (Sandbox Code Playgroud)

/保罗


Kju*_*uly 5

我的案例还包含\r, 包括\n,[NSCharacterSet newlineCharacterSet]不起作用,而是使用

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

解决了我的问题。

顺便说一句,\\s将删除所有空格,这不是预期的。