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]));为什么报错,我甚至在上面加了个判空条件,还是不对,孩子人都傻了。