java - 从格式化金额中提取货币

标签 java parsing currency

我从网络服务中获得了一定数量的钱。它可以采用不同的格式并使用不同的货币,例如

  • 1.10 美元
  • 1.10 欧元
  • 1,10 €
  • 1.10 欧元(也许,我不确定我真的会遇到这个)

我想从中提取货币符号 ($),如果可能的话,从该符号中获取关联的 Currency 对象 (Java)。我不需要提取金额,我可以从其他地方获取。

最佳答案

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

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));
    }
}

关于java - 从格式化金额中提取货币,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7583004/

相关文章:

java - Jpos 异常 : Can't connect printer device (issue on linux only)

java - 使用递归并实现欧几里得算法来查找用户的三个数字的 GCD

php - 在php中解析包含点的字符串

c# - 解析自定义过滤器语法的最佳方法

javascript - 我应该把 json 结果放在 money.js 的什么地方?

java - 在身份验证层后面读取 list 签名的 webstart jar 时出现 NullPointerException

java - Hibernate:是否可以将多级继承映射到单个表?

string - 使用 golang 根据位置解析字符串的好方法是什么?

javascript - 无法将货币格式添加到输入总和中的总输入

api - PayPal 可以在用户之间转账吗?