java.lang.NumberFormatException:用于输入字符串评估

时间:2019-05-05 23:06:21

标签: java evaluate

Exception in thread "main" java.lang.NumberFormatException: For input string: "("
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:569)
    at java.lang.Integer.parseInt(Integer.java:615)
    at collection.MyExpressionTrees.evaluateHelper(MyExpressionTrees.java:58)
    at collection.MyExpressionTrees.evaluateHelper(MyExpressionTrees.java:78)
    at collection.MyExpressionTrees.evaluate(MyExpressionTrees.java:50)
public class MyExpressionTrees extends MyBinaryTree {

    public MyExpressionTrees() {
        root = null;
    }

    public MyExpressionTrees(MyBinaryTreeNode rt) {
        root = rt;
    }

    public int evaluate() {
        if (root == null) {
            return -1000000;
        }
        return evaluateHelper(root);
    }

    private int evaluateHelper(MyBinaryTreeNode rt) {
        if (rt.left == null) {
            return Integer.parseInt(rt.data.toString());
        }

        switch (rt.data.toString()) {
            case "+":
                return evaluateHelper(rt.left) + evaluateHelper(rt.right);
            case "-":
                return evaluateHelper(rt.left) - evaluateHelper(rt.right);
            case "/":
                return evaluateHelper(rt.left) / evaluateHelper(rt.right);
            case "*":
                return evaluateHelper(rt.left) * evaluateHelper(rt.right);
            case "%":
                return evaluateHelper(rt.left) % evaluateHelper(rt.right);
            default:
                return -1000000;
        }
    }
}
result = exTree.evaluate();

0 个答案:

没有答案