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