1public int evalRPN(String[] tokens) {
2 Stack<Integer> stack = new Stack<>();
3
4 for (int i = 0; i < tokens.length; i++) {
5 String token = tokens[i];
6
7 if (isOperator(token)) {
8 int b = stack.pop();
9 int a = stack.pop();
10 int result = 0;
11
12 switch (token) {
13 case "+":
14 result = a + b;
15 break;
16 case "-":
17 result = a - b;
18 break;
19 case "*":
20 result = a * b;
21 break;
22 case "/":
23 result = a / b;
24 break;
25 }
26
27 stack.push(result);
28 } else {
29 stack.push(Integer.valueOf(token));
30 }
31 }
32
33 return stack.pop();
34}
35
36private boolean isOperator(String token) {
37 return token.equals("+") || token.equals("-") ||
38 token.equals("*") || token.equals("/");
39}