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]));为什么报错,我甚至在上面加了个判空条件,还是不对,孩子人都傻了。
你这转的是啥,把你的需求描述一下
建议输出一下res[n-1]
如果判断不为空的话
第一种可能你字符串为'null'或者''空串就会继续往下走
第二种你的这个值不是纯数字