class Solution {
public int evalRPN(String[] tokens) {
Stack<Integer> stack = new Stack<>();
for (int i = 0 ;i < tokens.length;i++){
String str = tokens[i]; //利用数组 依次运算
if (str.length() == 1){ //判断长度是否为1
char ch = str.charAt(0);
if (ch-'0' >= 0 && ch - '0' <= 9 ){ //判断是否为整数
Integer a = Integer.valueOf(str);
stack.push(a);
}
else{ //为运算符
if (stack.size() < 2) //判断边界情况 :整数个数小于2 或者运算完毕还存在运算符的情况 返回0;
return 0;
int num2 = stack.pop();
int num1 = stack.pop();
switch(ch){
case '+':
stack.push(num1 + num2);
break;
case '-':
stack.push(num1 - num2);
break;
case '*':
stack.push(num1 * num2);
break;
case '/':
stack.push(num1 / num2);
break;
}
}
}else{
int n = Integer.valueOf(str);
stack.push(n);
}
}
return stack.pop();
}
}