【问题标题】:Replace stretches of spaces and newlines with just a space in a string仅用字符串中的空格替换空格和换行符
【发布时间】:2015-08-03 08:38:16
【问题描述】:

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

bla     bla  
    bla bla

并将其转换为:

bla bla bla bla

我环顾四周,似乎只能手动完成。有谁知道有没有其他方法?

【问题讨论】:

  • stackoverflow.com/questions/758212/… ?并使用whitespaceAndNewlineCharacterSet 代替NSCharacterSet?
  • @Larme 是的,我认为基本上这就是马特下面的内容。没能找到那个问题。感谢您发布。

标签: ios objective-c nsstring


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    在这些情况下,我一直是正则表达式的忠实粉丝。没有他们,我们怎么相处?所以我会使用包含正则表达式说明符的options: 来调用stringByReplacingOccurrencesOfString...,并使用一个简单的模式表达式来查找所有的空格(并将其替换为一个空格)。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-31
      • 1970-01-01
      • 2013-05-09
      • 2017-06-02
      • 1970-01-01
      • 1970-01-01
      • 2020-12-19
      • 2021-05-11
      相关资源
      最近更新 更多