Java 替换字符串中除 last 之外的所有出现的空格



>假设我有一个字符串:"10 000,00 EUR""1 000 000,00 EUR"

我想从字符串中删除除最后一个之外的所有空格,因此结果将是:"10000,00 EUR""1000000,00 EUR"

目前我有这样的东西:

String myString = "1 000 000 EUR";
myString = myString.replace("\s(?=\s*\s)", "")

我假设我应该使用正则表达式前瞻表达式,该表达式与后面还有另一个空格的空格匹配?任何解决问题的答案将不胜感激。

尝试这样的事情:

Regex r = new Regex("\s");
myString = myString.replace(r, "");

如果您想确定它不是最后一个空格:

Regex m = new Ragex("\s\S+^"); \means: tha last space.
myString = myString.replace(m, "@@@@"); \escape the last space.
myString = myString.replace(r, ""); \delete the other spaces.
myString = myString,replace("@@@@", " "); \put back the last space on place we marked.

例如,该过程是:

myString = "100 00 0 ER">

=>"100 00 0@@@@ER" 
=>"100000@@@@ER"
=>"100000 ER"

祝你好运!

像这样:

[^Srn](?=[0-9])

这个想法是匹配空格字符,除了换行符或后跟数字的回车符。

请参阅此答案以了解双阴性[^Srn]的工作原理。

演示