我創建了一個具有三個類的表達式樹(一個用於評估表達式的樹的結構,另一個給出了它的後綴和中綴表示法(Expr),另一個一個只是從表達式構建樹(使用堆棧...),另一個是EvalExpr,這是我的主) 但我得到表達式「(2 + 3.5)」的錯誤,我不知道它在哪裏來自。這樣的錯誤:)表達式樹評估java.lang.NumberFormatException java
Exception in thread "main" java.lang.NumberFormatException: For input string: "3.5"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at exprTree.Expr.eval(Expr.java:68)
at exprTree.Expr.eval(Expr.java:74)
at exprTree.Expr.eval(Expr.java:73)
at exprTree.Expr.eval(Expr.java:73)
at EvalExpr.main(EvalExpr.java:42)
和我的方法的eval(是這樣的:
public double eval()
{
double leftOperand = 0;
double rightOperand = 0;
String operator;
if(this == null)
return 0;
else if(rightChild == null && leftChild == null)
return Double.parseDouble(value);
else
{
operator = value;
leftOperand = leftChild.eval();
rightOperand = rightChild.eval();
return calc(operator, leftOperand, rightOperand);
}
}
誰能幫我找到這個神祕的錯誤? 謝謝
您發佈的代碼不可能拋出此異常,因爲它不會調用'Integer.parseInt()'。 Ergo或者不會拋出異常,或者這不是拋出它的代碼。不是一個真正的問題。 – EJP 2013-04-30 10:02:02
這正是我的代碼 – 2013-04-30 10:11:19