如何在考虑性能的情况下修剪内部空间只留下一个空间?
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()
以消除前导空格和尾随空格。
output = input.replaceAll("\\s{2,}", " ").trim();
s = s.replaceAll("\\s+", " " ).trim();
这里有正确的答案,例如:
s = s.replaceAll("\\s+", " " ).trim();
但我认为选择正确的问题也很重要。与其询问String
使用正则表达式修剪 a ,不如直接询问修剪String
,并让回答的人向您展示最佳策略?
折叠空格的方法可能比使用正则表达式更好。当然还有其他方法。
"Hello a a g g a gag gs gs@".replaceAll( "[ ]+{2}", " ") ).trim();