从格式化金额中提取货币

我从Web服务获得格式化的金额。 它可以用不同的格式和使用不同的货币,例如

  • $ 1.10
  • € 1,10
  • 1,10 €
  • EUR 1.10 (或许,我不确定我会遇到这个)
  • 我想从中提取货币符号( $ ),并且如果可能的话从该符号中获取关联的Currency对象(Java)。 我不需要提取金额,我可以在其他地方找到。


    您可以使用正则表达式来解析来自web服务的结果。 您必须过滤所有字符,数字,点和空格除外。 这是正则表达式:

    String regexp = "[^0-9.,s]*";
    

    匹配结果的第一组是货币符号(或名称,例如EUR)。

    这是我的示例方法:

    public void test() throws Exception {
        String text = "2.02 $";
        String regexp = "[^0-9.,s]*";
        Pattern p = Pattern.compile(regexp);
        Matcher m = p.matcher(text);
        while (m.find()) {
            for (int i = 0; i < m.groupCount() + 1; i++)
                LOG.info(m.group(i));
        }
    }
    

    你可以看看Joda Money,它可能会为你的问题提供一个解决方案。 小心:它仍然是0.6版本


    java.util.Currency getSymbol()方法将帮助您获取货币符号

    链接地址: http://www.djcxy.com/p/55041.html

    上一篇: Extract currency from formatted amount

    下一篇: Quartz : Memory Leak?