如何从字符串中提取double值?
例如,s= "1.2+3.4*(3.2+2.3)-12.1/3.4*1.8+5.7"
如何提取double值,并将其存储为变量?
答案 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]+)|(\+|-|\/|\(|\|\)|\*)
查看强>