我有NSString
这样:
Hello
World
of
Twitter
Lets See this
>
我想将其转换为:
Twitter的Hello World让我们看到这个>
我该怎么做?我在iPhone上使用Objective-C。
答案 0 :(得分:131)
将字符串拆分为组件并按空格连接:
NSString *newString = [[myString componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] componentsJoinedByString:@" "];
答案 1 :(得分:85)
将字符串拆分成组件并重新加入它们是一种非常冗长的方法。我也使用Paul提到的相同方法。您可以替换任何字符串出现。继Paul所说,你可以用这样的空格替换新的行字符:
myString = [myString stringByReplacingOccurrencesOfString:@"\n" withString:@" "];
答案 2 :(得分:9)
我正在使用
[...]
myString = [myString stringByReplacingOccurrencesOfString:@"\n\n" withString:@"\n"];
[...]
/保
答案 3 :(得分:3)
我的案例还包含\r
,包括\n
,[NSCharacterSet newlineCharacterSet]
不起作用,而是使用
htmlContent = [htmlContent stringByReplacingOccurrencesOfString:@"[\r\n]"
withString:@""
options:NSRegularExpressionSearch
range:NSMakeRange(0, htmlContent.length)];
解决了我的问题。
顺便说一下,\\s
将删除所有空格,这是不期望的。
答案 4 :(得分:2)
在这里提供一个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)));