假设我有任意文本,其中包含货币值,如下所示:
The price today is $1,234.56! Don't miss out!
我想将美分的数量提取为int
,即:
123456
一些标准:
- 000 的逗号是可选的
- 价格低于 1,000,000.00 美元
$
始终存在- 小数部分始终存在
我尝试过使用 Pattern 和 Matcher,但看起来太困惑了。
执行此操作的最简单代码是什么?
最佳答案
尝试
String s = "The price today is $1,234.56! Don't miss out!";
Pattern p = Pattern.compile("\\$(((\\d+,?\\d++)|(\\d++))\\.?\\d\\d)");
Matcher m = p.matcher(s);
m.find();
Long cents = Long.parseLong(m.group(1).replaceAll("[,.]", ""));
System.out.println(cents);
打印
123456
关于java - 从文本中的货币中提取以美分为单位的金额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14068802/