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

Input:
     AA     BB
Output:
AA BB

Input:
A      A
Output:
A A
有帮助吗?

解决方案

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

输出:

AA BB

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

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

其他提示

用一个空格"替换两个或多个空格" \\ s {2,}" < 然后执行 trim()以除去第1个示例中显示的前导和尾随空格。

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

<代码>

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

这里有正确答案,例如:

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

但我认为选择正确的问题也很重要。使用正则表达式而不是要求修改 String ,为什么不只是询问修剪 String ,并让人们回答给你看最好的策略?

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top