NumberFormat.getCurrencyInstance()格式化为带空格的字符串,即没有空格.如何去除?<



我有以下代码:

NumberFormat numberFormat = NumberFormat.getCurrencyInstance(getLocale());
return numberFormat.format("-123.45").replaceAll("\s", "");

由于格式返回"-€123,45"对于我的语言环境,我希望代码返回"-€123,45",但它返回"-€123,45"。当检查返回的字符串时,它说它有一个-96而不是一个空格。显然,format不是插入空格,而是插入神秘的-96字符。我如何删除-96字符?

这是字符0xA0,或u00A0,或非分隔空格(或NO-BREAK space),例如在Windows-1252和Unicode中。这用于防止在货币符号之后但在数字之前出现换行或换行。

Java中的正则表达式字符类s只包含:

一个空格字符:[ t f r n x0B ]

参见javadoc ofjava.util.regex.Pattern

\h代替\s,因为h覆盖:

一个水平空白字符:[txA0u1680u180eu2000-u200au202fu205fu3000]

或者,只替换u00a0

最新更新