从NSString中删除换行符

时间:2009-11-27 10:02:07

标签: ios objective-c iphone string

我有NSString这样:

Hello 
World
of
Twitter
Lets See this
>

我想将其转换为:

  

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

我该怎么做?我在iPhone上使用Objective-C。

5 个答案:

答案 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)));