评估表达式的正确语法是什么?
public double evaluate(){
String ans = (expressionOne.getValue())+""+(SignOperator.getName())+""+expressionTwo.getValue()+"";
return Double.parseDouble(ans);
}
例如 expressionOne 可以是 X,其值为 5.5,而 expressionTwo 例如可以是 Y,其值为 9.0。当我试图评估某个表达式时,我得到:
线程“main”中的异常 java.lang.NumberFormatException:对于输入字符串:“5.5+9.0”
第二部分是当我想打印我创建的一些表达式时 toString()
public String toString() {
String ans = expressionOne.toString()+""+SignOperator.getName()+""+expressionTwo.toString()+"";
return ans;
}
例如:
Variable x = new Variable ('x',5.5);
Variable y = new Variable ('y', 3.5);
Constant nine= new Constant (9.0);
Operator plus=new Operator('+');
BinaryExpression xPy = new BinaryExpression(x, plus, y);
BinaryExpression xP9 = new BinaryExpression(x, plus,nine);
当我打印 xPy 时会给我 x+y。当我打印 xP9 - 它会给我 x+9 (因为九是恒定的)。
我如何在一个 toString 中检查表达式是常量(只是一个数字)还是一个变量(如示例中) - 如何检测它?.
编辑
如您所见,有两种 BinaryExpression - 其中一种 xPy - x 和 y 是两个变量,如果我想评估它们,它会给我例如( 3.0+5.0 )但如果我将打印它们它将给我 x+y,对于第二个示例 xP9 - 如果我将评估它将给我 (3.0+9.0) 但如果我将打印它们它将给我 (x + 9.0) 因为九是常数(见问题) .
谢谢。