class Solution {public int evalRPN(String[] tokens) {//创建一个栈,只需要一个栈即可Stack<Integer> stack = new Stack<>();//遍历 lsfor(String item:tokens){//这里使用正则表达式来取出数if(isNumber(item)){//匹配的是多位数//入栈stack.push(Integer.parseInt(item));}else {//pop出两个数,并运算,再入栈int num2=stack.pop();int num1=stack.pop();int res=0;if(item.equals("+")){res=num1+num2;}else if(item.equals("-")){res=num1-num2;}else if(item.equals("*")){res=num1*num2;}else if(item.equals("/")){res=num1/num2;}//把res入栈stack.push(res);}}//最后留在stack中的数据就是运算结果return stack.pop();}public boolean isNumber(String token) {return !("+".equals(token) || "-".equals(token) || "*".equals(token) || "/".equals(token));}
}
注意点:
字符串转化为数字
方式一
方式二