繁体   English   中英

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

[英]how to extract double from a string like this

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

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

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

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

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]+)|(\+|-|\/|\(|\|\)|\*)

看到

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM