Advertisement
Guest User

Untitled

a guest
Apr 19th, 2015
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.41 KB | None | 0 0
  1. import java.io.StringReader;
  2. import java.util.Scanner;
  3. import java.util.Stack;
  4.  
  5. public class RPN {
  6.     Stack<Integer> stack = new Stack<Integer>();
  7.  
  8.     Stack<Integer> evaluate(String expression) {
  9.         StringReader sr = new StringReader(expression);
  10.         Scanner scanner = new Scanner(sr);
  11.         while (scanner.hasNext()) {
  12.             String token = scanner.next();
  13.             if (token.equals("+")) {
  14.                 int a = stack.peek();
  15.                 stack.pop();
  16.                 int b = stack.peek();
  17.                 stack.pop();
  18.                 stack.push(a + b);
  19.             } else if (token.equals("-")) {
  20.                 int a = stack.peek();
  21.                 stack.pop();
  22.                 int b = stack.peek();
  23.                 stack.pop();
  24.                 stack.push(a - b);
  25.             } else if (token.equals("")) {
  26.                 int a = stack.peek();
  27.                 stack.pop();
  28.                 int b = stack.peek();
  29.                 stack.pop();
  30.                 stack.push(a * b);
  31.             } else if (token.equals("/")) {
  32.                 int a = stack.peek();
  33.                 stack.pop();
  34.                 int b = stack.peek();
  35.                 stack.pop();
  36.                 stack.push(a / b);
  37.             } else {
  38.                 stack.push(Integer.parseInt(token));
  39.             }
  40.         }
  41.         return stack;
  42.     }
  43.  
  44.     void clear() {
  45.         stack.clear();
  46.     }
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement