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