用字符串中的 space 替换一段 space 和换行符

Replace stretches of spaces and newlines with just a space in a string

我想知道是否有一个库或简单的方法可以让我使用 NSString 并替换仅用一个串在一起的任何一段 '\n' 和 space单身space? (包括在内,我也只想用 space 替换所有出现的 '\n' 本身)。所以我想像这样 NSString:

bla     bla  
    bla bla

并将其转换为:

bla bla bla bla

我环顾四周,似乎只能手动完成。有谁知道还有别的办法吗?

只需用 \n 分隔字符串并使用空格连接。

NSString *result = [[string componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] componentsJoinedByString:@" "];

这将删除新行,将空格序列折叠成单个空格,使用 this

在这些情况下,我总是非常喜欢正则表达式。没有他们,我们如何相处?所以我会用 options: 调用 stringByReplacingOccurrencesOfString... 包括正则表达式说明符,并使用一个简单的模式表达式来找到所有的白色 space (并将其替换为单个 space).

NSString* s2 = [s stringByReplacingOccurrencesOfString:@"\s+" 
 withString:@" " 
 options:NSRegularExpressionSearch 
 range:NSMakeRange(0,s.length)];