题
如何在内部修剪空间,只考虑性能而留下一个空间?
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
,并让人们回答给你看最好的策略?
可能有更好的方法来折叠空间而不是使用正则表达式。肯定有其他方式。
不隶属于 StackOverflow