【问题标题】:Replace newline and extra spaces替换换行符和多余的空格
【发布时间】:2018-02-18 21:14:40
【问题描述】:

我的文字是这样的:

[spaces] This is a [spaces]  line [spaces] [newline]<br/>  
which has been [spaces] broken [newline]<br/> 
[newline]<br/> 
[newline]<br/> 
into multiple part[spaces] [newline]<br/> 

我想:

  • 用空格删除单个换行符
  • 用单个换行符删除多个换行符
  • 用单个空格删除多个空格
  • 保持单个空白原样。

所以上面的文字应该是这样的:

This is a line which has been broken<br/>
into multiple part.

我正在使用 java(用于 android 应用程序)。我在这里尝试了一些解决方案,但只有trim() 似乎可以工作,它会在文本的开头和结尾去除空格。其他ReplaceAll() 方式在我的情况下不起作用。

任何帮助将不胜感激。 谢谢。

更新 我使用了这段代码: replaceAll("\n", " ").replaceAll("[\n]{2,}", "\n").replaceAll(" +", " ")

但它没有按预期工作。

看来我需要能够同时完成所有这三个替换的东西,而不是将字符串从一个传递到另一个 replaceAll()

它应该看看是否有两个以上的\n 然后用一个\n 替换它,如果已经只有一个\n 然后用一个空格替换它。

我想我应该先用 TWOFEEDS 之类的词替换两个或多个 \n,然后用空格替换单个 \n。之后,我再次将 TWOFEEDS 替换为一个 \n

更新 2 这按预期工作。但是我不确定当我从数据库表中传递 7200 条文本记录时它会有多慢。

replaceAll("[\n]{2,}", "TWOFEEDS").replaceAll("\n", " ").replaceAll(" +", " ").replaceAll("&lt;br/&gt;", "\n").replaceAll("TWOFEEDS", "\n")

如果有任何需要改进的地方,请告诉我。

【问题讨论】:

标签: java android regex


【解决方案1】:

使用String.replace(/\s\s+/g, ' ')

`example   .
  text`.replace(/\s\s+/g, ' ');

【讨论】:

    【解决方案2】:

    试试这个,用一个新行替换多个新行:

    yourStr.replaceAll("[\r\n]+", "\r\n")
    

    【讨论】:

      【解决方案3】:

      如果有人需要回答这类问题,那么我终于解决了这个问题

      replaceAll("\n", " ").replaceAll("[\n]{2,}", "\n").replaceAll(" +", " ")

      即使对于 7k 条记录,这也能正常工作。此外,您可能希望在应用上述 replaceAll() 之前使用 trim() 像 yourtext.trim().replaceAll....(基本上是上面的代码)使用它

      【讨论】:

      • 一个就够了,为什么还要使用 3 个replaceAll
      【解决方案4】:

      使用 Regex 您可以删除多余的空格和行。

      代码:

      String text = text.replaceAll("\\s+", " ");
      

      这将为您提供您所期望的输出。

      【讨论】:

      • 感谢您的回复。它也删除了多个带有空格的换行符。我想用单个换行符替换多个换行符。谢谢。
      • 无法理解您的问题。你的预期输出是什么?
      • 我的错。我更新了预期的输出。两个或多个\n' 应仅替换为一个。一个\n 应替换为一个空格。并且两个或多个空格应替换为一个空格。
      • @BhuvaneshBS - 你能解释一下正则表达式吗?
      猜你喜欢
      • 2011-09-15
      • 1970-01-01
      • 2017-03-26
      • 1970-01-01
      • 1970-01-01
      • 2015-03-11
      • 2012-06-04
      • 2015-08-03
      • 1970-01-01
      相关资源
      最近更新 更多