删除每个 space EXCEPT leading spaces

Remove every space EXCEPT leading spaces

我需要从字符串中删除除前导空格之外的所有空格。

我有一些字符串如下所示:

"              h        ello"

我正在努力实现这一目标:

"              hello"

这就像一个反转 trim()

最有效的方法是什么?

您可以将 replaceAll 与此正则表达式 (?<=\S)(\s+)(?=\S) 一起使用,如下所示:

str = str.replaceAll("(?<=\S)(\s+)(?=\S)", "");

输入和输出示例:

"              h   ello  "        => "              hello  "
"              hello,  word  "    => "              hello,word  "

第一个正则表达式只保留前导和尾随空格,如果你想只保留前导空格,那么你可以使用这个正则表达式 (?<=\S)(\s+).

输入和输出示例:

"              hello  "         => "              hello"
"              hello,  word  "  => "              hello,word"