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