Java中从欧元货币字符串中删除空格的数字
我有一个方法可以将一个数字转换成一种货币,对于“USD”和“GBP”来说效果很好,但是对于“EUR”这个数字格式,它呈现的是一个字符串,在符号和数字之间有一个空格€ 1.207.987,00
,而不是美元和英镑"$1,207,987.00"
,"£1,207,987.00"
。我尝试使用“替换”和“全部替换”来删除此项,但没有任何效果,请遵循以下代码:
public static void main(String[] argsd) {
Number rawNumber = 120798700;
NumberFormat numberFormat = NumberFormat.getCurrencyInstance(Locale.forLanguageTag("nl"));
Currency currency = Currency.getInstance("EUR");
numberFormat.setCurrency(currency);
String numberRemoveSpaces = numberFormat.format((rawNumber.floatValue() / 100)).replaceAll("\\s+", "");
System.out.println(numberRemoveSpaces);
}
# 1 楼答案
谢谢大家的回答,但是根据http://www.bubblefoundry.com/blog/2013/11/formatting-dutch-currency-amounts/荷兰货币的默认格式在符号和数字之间有空格,所以我会保留空格
# 2 楼答案
您可以使用以下选项,而不是当前的
replaceAll()
:U+00A0的Unicode值是一个不间断的空格(请参见here)。这是用于将货币符号与金额分开的特定字符
您还可以选择按如下方式构建自定义格式:
这也会产生相同的输出:
# 3 楼答案
如果要删除它,请尝试以下操作:
这将删除任何类型的空白或不可见分隔符