Java 如何将带有操作数符号的字符串转换为double?

Java 如何将带有操作数符号的字符串转换为double?,java,string,math,double,Java,String,Math,Double,在java中,以下代码起作用: double a = 15.5+0.5; System.out.println(a); 这将打印16.0 那么,为什么以下命令返回运行时错误: String a = "15.5+0.5"; Double b = Double.parseDouble(a); System.out.println(b); 在将字符串转换为双精度并计算值时,如何使第二个示例不出现错误并表现得与第一个示例相同?parseDouble,parseInteger等。不要执行表达式求值,

在java中,以下代码起作用:

double a = 15.5+0.5; 
System.out.println(a);
这将打印
16.0

那么,为什么以下命令返回运行时错误:

String a = "15.5+0.5";
Double b = Double.parseDouble(a);
System.out.println(b);

在将字符串转换为双精度并计算值时,如何使第二个示例不出现错误并表现得与第一个示例相同?

parseDouble
parseInteger
等。不要执行表达式求值,它们只是执行从某个值的字符串表示到数字表示的转换(因此
“5.0”
转换为
5.0

有关
parseDouble
行为的精确定义,请参阅文档



如果您想要执行表达式计算,您可以研究反向波兰符号和调车场算法,或者理想情况下是一个。或者,您可以使用。

看看这个问题,它应该是对的吗?那么有没有一种方法可以对字符串执行表达式求值呢?