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

标签 java regex string pattern-matching

如何从字符串中提取 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]+)|(\+|-|\/|\(|\|\)|\*)
<小时/>

查看

关于java - 如何从这样的字符串中提取 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22571186/

相关文章:

java - 我们可以在将字符串加载到 Arraylist 对象时限制特定的字符串大小写吗?

javascript - 解释用于从 String 中删除 html 代码的正则表达式

javascript - 正则表达式允许负值

java - 安卓 Java : Extract substring from uri string after particular characters

java - 如何通过搜索某些字符从另一个字符串创建子字符串

java - ajax - 为什么 jquery 将 "+"替换为空格 ("")?

java - 如何使用 JSqlParser 添加新条件?

java - 序列化 EMF 模型实例的最佳方法是什么?

javascript - 字符串数组的字符串操作

excel - 如何从 Excel 中的文本字符串中记忆出正确的数字?