我创建了一个具有三个类的表达式树(一个用于评估表达式的树的结构,另一个给出了它的后缀和中缀表示法(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