Java中使用货币符号解析价格
我想把一个字符串解析成一个数字。这是我正在使用但不工作的代码:Java中使用货币符号解析价格,java,parsing,numbers,currency,Java,Parsing,Numbers,Currency,我想把一个字符串解析成一个数字。这是我正在使用但不工作的代码: 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 当然,正
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
当然,正则表达式也有一些方法,但我认为这有点过分了。语言环境。德语似乎没有货币符号。德国的货币是欧元符号(而不是字符串“EUR”)。请注意,下面的bull1和bull3会导致解析异常,CurrencyFormat对象只喜欢bull2
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);
}
我怀疑您需要找到一个适合您需要的开源货币解析器,或者自己编写一个。对于每个字符串,您是否提前知道正在使用什么语言环境约定,或者您是否正在寻找一个能够进行最佳猜测的算法。例如,意识到
1000.52
中的逗号与1.000,52
中的逗号的作用不同的东西?