Java String Manipulation:根据模式从字符串中提取整数和浮点数

Dom*_*nik 2 java regex string floating-point integer

我有一个String的以下两个可能的内容.显然金额总是变化的,我想提取关键信息和

Case 0:   pricesString = ""
Case 1:   pricesString = "$0.023"
Case 2:   pricesString = "10+: $1.46 100+: $0.16 500+: $0.04"
Run Code Online (Sandbox Code Playgroud)

Case 0我愿做任何事.

Case 1我想表演:

article.addPrice(1, 0.023);
Run Code Online (Sandbox Code Playgroud)

Case 2我想表演:

article.addPrice(10, 1.46);
article.addPrice(100, 0.16);
article.addPrice(500, 0.04);
Run Code Online (Sandbox Code Playgroud)

如何提取此信息,以便可以使用包含的浮点数和整数值调用article.addPrice?

Boz*_*zho 5

这看起来像正则表达式的工作:

String pricesString = "10+: $1.46 100+: $0.16 500+: $0.04";
Pattern p = Pattern.compile("(\\d+)\\+: \\$(\\d\\.\\d\\d)");
Matcher m = p.matcher(pricesString);
while (m.find()) {
    Intger.parseInt(m.group(1));
    Double.parseDouble(m.group(2));
}
Run Code Online (Sandbox Code Playgroud)

您可以通过简单的.length()检查在3种情况中进行选择.上面的代码适用于最后一种情况.剩下的就是eaiser