修剪字符串空间的最佳方法

时间:2009-11-26 21:35:12

标签: java regex trim

如何在内部修剪空间,只考虑性能而留下一个空间?

Input:
     AA     BB
Output:
AA BB

Input:
A      A
Output:
A A

5 个答案:

答案 0 :(得分:11)

System.out.println("     AA     BB".replaceAll("\\s+", " ").trim());

输出:

AA BB

注意:与此处的其他一些解决方案不同,这也会用单个空格替换单个选项卡。如果您没有任何标签,则可以使用“{2,}”,而不是更快:

System.out.println("     AA     BB".replaceAll(" {2,}", " ").trim());

答案 1 :(得分:7)

将两个或多个空格"\\s{2,}"替换为单个空格" ",之后执行trim()以删除前面和后面的空格,如第一个示例中所示。

output = input.replaceAll("\\s{2,}", " ").trim();

答案 2 :(得分:2)

s = s.replaceAll("\\s+", " " ).trim();

答案 3 :(得分:0)

"Hello a a g g a   gag gs    gs@".replaceAll( "[ ]+{2}", " ") ).trim();

答案 4 :(得分:0)

这里有正确答案,例如:

s = s.replaceAll("\\s+", " " ).trim();

但我认为选择正确的问题也很重要。我们不是要求使用正则表达式来修剪String,而是仅仅询问修剪String,并让人们回答给你展示最佳策略?

可能有更好的方法来折叠空间而不是使用正则表达式。肯定有其他方式。