我的文字是这样的:
[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应用)。我在SO上尝试了一些解决方案,但只有trim()
似乎可以在文本的开头和结尾处删除空格。其他ReplaceAll()
方法在我的案例中不起作用。
任何帮助将不胜感激。 谢谢。
更新
我用过这段代码:
replaceAll("\n", " ").replaceAll("[\n]{2,}", "\n").replaceAll(" +", " ")
但它没有按预期工作。
似乎我需要能够同时完成所有这三个替换的东西,而不是将字符串从一个传递给另一个replaceAll()
应该看看是否还有两个\n
然后将其替换为一个\n
如果只有一个\n
,则将其替换为空格。
我认为我应该首先使用TWOFEEDS之类的单词替换两个或更多\n
,然后用空格替换单\n
。之后,我再次用一个\n
更新2 这按预期工作。但是我不确定当我从DB表中传递7200条文本记录时会有多慢。
replaceAll("[\n]{2,}", "TWOFEEDS").replaceAll("\n", " ").replaceAll(" +", " ").replaceAll("<br/>", "\n").replaceAll("TWOFEEDS", "\n")
如果有任何改进请告诉我。
答案 0 :(得分:6)
使用正则表达式,您可以删除多余的空格和行。
代码:
String text = text.replaceAll("\\s+", " ");
这将为您提供预期的输出。
答案 1 :(得分:0)
如果有人需要回答这类问题,那么我终于解决了这个问题
replaceAll("\n", " ").replaceAll("[\n]{2,}", "\n").replaceAll(" +", " ")
即使对于7k记录也是如此。另外,您可能希望在申请上面trim()
之前使用replaceAll()
使用它像yourtext.trim()。replaceAll ....(基本上代码上面)
答案 2 :(得分:0)
尝试此操作,以单个新行替换多个新行:
yourStr.replaceAll("[\r\n]+", "\r\n")
答案 3 :(得分:0)
使用ID
String.replace(/\s\s+/g, ' ')