publicstaticintcalculate(List<String> list){
Stack<String> stack =newStack<String>();for(String item : list){// 正则表达式判断取出来的数据是否为整数if(item.matches("\\d+")){
stack.push(item);}else{int num1 = Integer.parseInt(stack.pop());int num2 = Integer.parseInt(stack.pop());int num =0;if("+".equals(item)){
num = num1 + num2;}elseif("-".equals(item)){
num = num2 - num1;}elseif("*".equals(item)){
num = num1 * num2;}elseif("/".equals(item)){
num = num2 / num1;}else{thrownewRuntimeException("运算符有误");}
stack.push(String.valueOf(num));}}return Integer.parseInt(stack.pop());}}//返回操作符的优先级classOperation{privatestaticint ADD =1;privatestaticint SUB =1;privatestaticint MUL =2;privatestaticint DIV =2;publicstaticintgetValue(String operation){int result =0;switch(operation){case"+":
result = ADD;break;case"-":
result = SUB;break;case"*":
result = MUL;break;case"/":
result = DIV;break;case"(":break;default:
System.out.println("不存在该运算符:"+operation);break;}return result;}}