표현식 트리를 세 가지 클래스로 작성했습니다 (하나는 표현식을 평가하는 트리의 구조에 대한 것이고 다른 하나는 표현식과 접미사 표기법 (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)
내 방식 평가()이 같다 :
는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()'를 호출하지 않으므로이 예외를 throw 할 수 없습니다. 예외가 throw되지 않았거나 던져진 코드가 아닙니다. 진짜 질문이 아닙니다. – EJP
이것은 정확히 내 코드 –