title: Postfix Calculator Java
body: <p>Ok so I have to read in a postfix expression from a file. The postfix expression must have spaces to separate each operator or operand. What I have so far works only if there is no spaces between the operators or operands in the input file. (i.e. if the file has 12+ the result I get is 3.) In order to do this I think that I need to tokenize the input, but I am not sure how. This is what I have so far. Thank you for any responses. </p>
  
  <pre><code>import java.util.*;
  import java.io.*;
  public class PostfixCalc{
  public static void main (String [] args) throws Exception {
  File file = new File("in.txt");
  Scanner sc = new Scanner(file);
  String input = sc.next();
  Stack&lt;Integer&gt; calc = new Stack&lt;Integer&gt;();
  while(sc.hasNext()){
  for(int i = 0; i &lt; input.length(); i++){
      char c = input.charAt(i);
      int x = 0;
      int y = 0;
      int r = 0;
      if(Character.isDigit(c)){
         int t = Character.getNumericValue(c);
          calc.push(t);
      }
      else if(c == '+'){
          x = calc.pop();
          y = calc.pop();
          r = x+y;
          calc.push(r);
      }
       else if(c == '-'){
          x = calc.pop();
          y = calc.pop();
          r = x-y;
          calc.push(r);
      }
       else if(c == '*'){
          x = calc.pop();
          y = calc.pop();
          r = x*y;
          calc.push(r);
      }
       else if(c == '/'){
          x = calc.pop();
          y = calc.pop();
          r = x/y;
          calc.push(r);
      }
  }
   }
   int a = calc.pop();
  System.out.println(a);
   }
   } 
  </code></pre>