我想将我拥有的字符串解析为数字。这是我正在使用但不起作用的代码:
NumberFormat.getCurrencyInstance(Locale.GERMAN).parse("EUR 0,00");
这会导致 java.text.ParseException
所以我想将字符串与数字相匹配,我并不真正关心货币,但如果有的话那就太好了。
我想要匹配以下类型的字符串:
EUR 0,00
EUR 1.432,89
$0.00
$1,123.42
1,123.42$
1,123.42 USD
当然,正则表达式有很多方法,但我认为这有点矫枉过正。
Locale.GERMAN 似乎没有货币符号。 Locale.GERMANY 将欧元符号作为其货币(而不是字符串“EUR”)。请注意,下面的 blam1 和 blam3 会导致解析异常,CurrencyFormat 对象只喜欢 blam2。
NumberFormat numberFormat = NumberFormat.getCurrencyInstance(Locale.GERMANY);
System.out.println("75.13 euro: " + numberFormat.format(75.13));
try {
System.out.println("Parsed blam1: " + numberFormat.parse("EUR 75,11"));
} catch (ParseException exception) {
System.out.println("Parse Exception1: " + exception);
}
try {
System.out.println("Parsed blam2: " + numberFormat.parse("75,12 €"));
} catch (ParseException exception) {
System.out.println("Parse Exception2: " + exception);
}
try {
System.out.println("Parsed blam3: " + numberFormat.parse("€ 75,13"));
} catch (ParseException exception) {
System.out.println("Parse Exception3: " + exception);
}
我怀疑您需要找到一个适合您需要的开源货币解析器,或者自己编写一个。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)