I have been stuck on this for several days now. I am trying to create a reverse polish calculator and I'm stuck at an intermediate stage. This is what I know i have to do (just not sure how to do it to much of a newbie :( ) I'm trying to call method, isOp, in the int method, evaluate. While in INT evaluate method and in a while(hasNextToken) loop. Calling isOp on each token, nextToken.
If it returns False, convert to (Integer) and push the token into a Stack. True, you will pop the two tokens, convert them to (Integer) and store them into x and y respectively. Do the Arithmetic operation and then push it back to the stack.
I'm pretty sure the IsOp test is good just can't figure out the first part.
I am trying to get the following code to work: public class Evaluator {//tokList contains a list of tokens in postfix notation. //evaluate the expression and return the result int x, y,resu; int i,j=0; public int evaluate (ArrayList tokList) { while (tokList.hasNextToken()){ isOp (s); (tokList.nextToken());
Stack eval =new Stack();
if (false) eval.push(new Integer(s)); else { y=((Integer) eval.pop()).intValue(); x=((Integer) eval.pop()).intValue(); switch (s) { case '+': resu=x+y; break; case '-': resu=x-y; break; case '*': resu=x*y; break; case '/': resu=x/y; break; default: resu=0; } eval.push(new Integer(resu));