试试这个:
String after = before.trim().replaceAll(" +", " ");
也可以看看
>返回字符串的副本,省略前导和尾随空格.
没有trim()正则表达式
只使用一个replaceAll也可以做到这一点,但这比trim()解决方案的可读性低得多.尽管如此,这里提供的只是为了展示正则表达式可以做什么:
String[] tests = {
" x ", // [x]
" 1 2 3 ", // [1 2 3]
"", // []
" ", // []
};
for (String test : tests) {
System.out.format("[%s]%n",
test.replaceAll("^ +| +$|( )+", "$1")
);
}
有3个替代品:
> ^ _:字符串开头的任何空格序列
>匹配并替换为$1,捕获空字符串
> _ $:字符串末尾的任何空格序列
>匹配并替换为$1,捕获空字符串
>(_):任何与上述任何一个都不匹配的空间序列,意味着它位于中间
>匹配并替换为$1,捕获单个空格
也可以看看