如何从像这样的字符串中提取double

时间:2014-03-21 23:18:41

标签: java regex string pattern-matching

如何从字符串中提取double值?

例如,s= "1.2+3.4*(3.2+2.3)-12.1/3.4*1.8+5.7"

如何提取double值,并将其存储为变量?

1 个答案:

答案 0 :(得分:2)

您可以使用模式匹配并抓取匹配部分

Pattern p = Pattern.compile("[0-9]*\\.?[0-9]+");
Matcher m = p.matcher("1.2+3.4*(3.2+2.3)-12.1/3.4*1.8+5.7");

while (m.find()) {
  System.out.println(m.group());
}

然后,您可以根据您的要求将所有匹配的数据收集到List<Double>List<Float>

要收集运算符,您还需要添加另一个模式以查找ORing部分

([0-9]*\.?[0-9]+)|(\+|-|\/|\(|\|\)|\*)

查看