从格式化金额中提取货币
我从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()
方法将帮助您获取货币符号