从NSString中删除换行符

我有这样的NSString

 Hello World of Twitter Lets See this > 

我想将其转换为:

让我们看看这个>

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

将string拆分为组件,并通过空间将其连接起来:

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

把弦拆分成零件并重新join它们是一个非常漫长的工作。 我也用保罗提到的同样的方法。 您可以replace任何string出现。 除了保罗所说的,你可以用这样的空格replace新的行字符:

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

我在用着

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

/保罗

我的情况也包含\r ,包括\n[NSCharacterSet newlineCharacterSet]不起作用,而是通过使用

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

解决了我的问题。

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

在这里提供@hallski的Swift 3.0版本的答案:

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

提供@Kjuly的Swift 3.0版本的答案(注意它用一个\ n来代替任何数量的新行)如果有人能指出我更好的办法,我宁愿不使用正则expression式):

 self.content = self.content.replacingOccurrences(of: "[\r\\n]+", with: "\n", options: .regularExpression, range: Range(uncheckedBounds: (lower: self.content.startIndex, upper: self.content.endIndex)));