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

Java 如何从这样的字符串中提取double,java,regex,string,pattern-matching,Java,Regex,String,Pattern Matching,如何从字符串中提取双值 例如,s=“1.2+3.4*(3.2+2.3)-12.1/3.4*1.8+5.7” 如何提取双精度值,并将其存储为变量?您可以使用模式匹配来实现,并获取匹配部分 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.grou

如何从字符串中提取双值

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


如何提取双精度值,并将其存储为变量?

您可以使用模式匹配来实现,并获取匹配部分

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());
}
然后,您可以根据需要将所有匹配的数据收集到
列表
列表

要收集操作符,还需要添加另一个要查找的模式,请参见ORing部分

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


进行模式匹配并抓取匹配部分如何进行模式匹配?谢谢!看一看,它已经被回答了。首先把它转换成字符数组,然后搜索所有的运算,+、-、*和/。你们可以把它们推到堆栈中,然后把它们拿到下一个操作员那个里。你们试过这个了吗?我想这就是你需要的。我需要为模式和匹配器导入什么样的头?
java.util.regex.Pattern
&
java.util.regex.Matcher
Netbeans在模式和匹配器下显示红线,它说找不到类模式和匹配器,所以我的问题是我是否需要导入一些东西?正如前面提到的,你需要导入这两个类。我的最后一个问题是如何将每个字符存储为变量。我的意思是数字和+,-,所有这些符号在一个变量里?