我从网络服务中获得了一定数量的钱。它可以采用不同的格式并使用不同的货币,例如
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/