publicintcalculate(String s){Stack<Integer> stack =newStack<>();int num =0;char pre ='+';for(int i =0; i < s.length(); i++){char c = s.charAt(i);if(Character.isDigit(c)){
num = num *10+ c -'0';}if(!Character.isDigit(c)&& s.charAt(i)!=' '|| i == s.length()-1){if(pre =='+'|| pre =='-'){
stack.push(pre =='+'? num :(-1)* num);}else{int x = stack.pop();if(pre =='*'){
x *= num;}else{
x /= num;}
stack.push(x);}
pre = c;
num =0;}}int res =0;while(!stack.isEmpty()){
res += stack.pop();}return res;}
publicintevalRPN(String[] tokens){Stack<Integer> stack =newStack<>();for(int i=0;i<tokens.length;i++){if(!Character.isDigit(tokens[i].charAt(0))&&tokens[i].length()==1){char c = tokens[i].charAt(0);int x = stack.pop();int y = stack.pop();int res=0;if(c=='+'){
res = y+x;}elseif(c=='-'){
res = y-x;}elseif(c=='*'){
res = y*x;}elseif(c=='/'){
res = y/x;}
stack.push(res);}else{
stack.push(Integer.parseInt(tokens[i]));}}return stack.pop();}