Java计数器核心代码

时间:2023-02-09 16:18:47

要求

输入计算公式的后缀波兰表达式,得出计算结果:

public class Solution {
public int evalRPN(String[] tokens) {

int returnValue = 0;

String operators = "+-*/";

Stack<String> stack = new Stack<String>();

for(String t : tokens){
if(!operators.contains(t)){
stack.push(t);
}else{
int a = Integer.valueOf(stack.pop());
int b = Integer.valueOf(stack.pop());
int index = operators.indexOf(t);
switch(index){
case 0:
stack.push(String.valueOf(a+b));
break;
case 1:
stack.push(String.valueOf(b-a));
break;
case 2:
stack.push(String.valueOf(a*b));
break;
case 3:
stack.push(String.valueOf(b/a));
break;
}
}
}

returnValue = Integer.valueOf(stack.pop());

return returnValue;

}
}

需要注意的点:在JDK1.7之前switch case是不支持string的,所以使用int比较保险。