有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中使用货币符号解析价格

我想把一个字符串解析成一个数字。这是我正在使用但不起作用的代码:

NumberFormat.getCurrencyInstance(Locale.GERMAN).parse("EUR 0,00");

这就产生了一个java。文本语法异常

所以我想把字符串匹配成一个数字,我并不真的关心货币,但如果有它就好了

我希望以下类型的字符串匹配:

EUR 0,00 
EUR 1.432,89
$0.00 
$1,123.42 
1,123.42$ 
1,123.42 USD

当然,RegEx有很多方法,但我认为这有点过头了


共 (1) 个答案

  1. # 1 楼答案

    地点。德国似乎没有货币符号。场所德国的货币是欧元符号(而不是字符串“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);
    }
    

    我怀疑您需要找到一个适合您需要的开源货币解析器,或者自己编写一个