我在使用Java解析日语货币字符串时遇到问题。似乎日元符号与java认为它不应该匹配。这是我的代码:
NumberFormat f = NumberFormat.getCurrencyInstance(Locale.JAPAN);
String s = "¥200";
Number n = f.parse(s);
这将抛出异常:
Exception in thread "main" java.text.ParseException: Unparseable number: "¥200"
at java.text.NumberFormat.parse(NumberFormat.java:333)
似乎java对Yen使用了不同的符号(“\ uFFE5”)
有人可以帮忙吗? 感谢
答案 0 :(得分:4)
NumberFormat f = NumberFormat.getCurrencyInstance(Locale.UK);
String s = "£200";
Number n = f.parse(s);
和
NumberFormat f = NumberFormat.getCurrencyInstance(Locale.US);
String s = "$200";
Number n = f.parse(s);
会产生同样的影响。 NumberFormat适用于数字,而不是字符串字符,即如果允许NumberFormat仅解析整数(默认值),则需要删除货币符号。你能做的是:
NumberFormat f = NumberFormat.getCurrencyInstance(Locale.JAPAN);
String s = "¥200";
f.setParseIntegerOnly(false);
Number n = f.parse(s);
这将允许日元字符通过。尝试使用$,它失败了。但是将本地更改为美国,允许$,而日元则不允许。
答案 1 :(得分:3)
尝试将字符“¥”(0xC2A5)更改为“¥”(0xEFBFA5)。
“¥”(0xC2A5)是日语语言环境中的特殊字符。