南七灵 2021-06-24 19:42 采纳率: 50%
浏览 39
已结题

java类型转换报错

public static int calPoints(String[] ops) {
        String[] res = new String[ops.length];
        int n = 0,len = 0,ans = 0;
        for(int i = 0;i < ops.length;i++){
            switch(ops[i]){
                case "+":
                    res[n++] = String.valueOf(Integer.parseInt(res[n-1] + Integer.parseInt(res[n-2])));
                    len ++;
                    break;
                case "D":
                    if(res[n-1].length() == 0) break;
                    res[n++] = String.valueOf(2*Integer.parseInt(res[n-1]));
                    len ++;
                    break;
                case "C":
                    res[--n] = null;
                    len --;
                    break;
                default:
                    res[n++] = ops[i];
                    len ++;
            }
        }
        for(int i = 0;i < len;i++){
            ans += Integer.parseInt(res[i]);
        }
        return ans;
    }

请问大家上面代码case"D"中的res[n++] = String.valueOf(2*Integer.parseInt(res[n-1]));为什么报错,我甚至在上面加了个判空条件,还是不对,孩子人都傻了。

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2021-06-24 19:42
    关注

    你这转的是啥,把你的需求描述一下

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月13日