Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.28 KB | None | 0 0
  1. public class RPNevaluator {
  2.     private StringBuffer outputBuffer;
  3.     private Stack <Double> myStack = new Stack <Double> ();
  4.  
  5.     RPNevaluator( String inputString ) {
  6.         outputBuffer = new StringBuffer();
  7.         StringTokenizer sTok = new StringTokenizer ( inputString, "+-/* ", true);
  8.         String temp;
  9.         double valueA;
  10.         double valueB;
  11.        
  12.         while (sTok.hasMoreTokens()) {
  13.             temp = ( String ) sTok.nextElement();
  14.             switch ( temp.charAt(0)) {
  15.             case '+':
  16.                 valueA = ( myStack.pop());
  17.                 valueB = ( myStack.pop());
  18.                 myStack.push( valueB + valueA );
  19.                 break;
  20.             case '-':
  21.                 valueA = ( myStack.pop());
  22.                 valueB = ( myStack.pop());
  23.                 myStack.push( valueB + valueA );
  24.                 break;
  25.             case '*':
  26.                 valueA = ( myStack.pop());
  27.                 valueB = ( myStack.pop());
  28.                 myStack.push( valueB + valueA );
  29.                 break;
  30.             case '/':
  31.                 valueA = ( myStack.pop());
  32.                 valueB = ( myStack.pop());
  33.                 myStack.push( valueB + valueA );
  34.                 break;
  35.             case ' ':
  36.                 break;
  37.             default:
  38.                 outputBuffer.append( temp +  " " );
  39.                 break;
  40.             }
  41.         }
  42.        
  43.         while( !myStack.isEmpty() ) {
  44.             outputBuffer.append(myStack.pop() + " ");
  45.         }
  46.     }
  47.     public static void main(String[] args) {
  48.         RPNevaluator test1 = new RPNevaluator( "5 1 2 + 4 * 3 + - ");
  49.         System.out.println(test1.outputBuffer);
  50.     }
  51.  
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement