All pastes #344919 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-02-08 03:09 UTC
rendered paste body
public class PostfixCalculator {
	public int convert(String postfix) {
		if(postfix.length()>0) {
			char[] postfix_arr = postfix.toCharArray();
			LinkedList<Integer> someStack = new LinkedList<Integer>();
			for(int i=0; i<postfix_arr.length; i++) {
				if(Character.isDigit(postfix_arr[i])) {
					someStack.push((int)postfix_arr[i]);
				} else {
					Integer a = someStack.pop();
					Integer b = someStack.pop();
					someStack.push(calculate(a, b, postfix_arr[i]));
				}
			}
			return someStack.pop();
		} else {
			return -1;
		}
	}
	
	public int calculate(int a, int b, Character operator) {
		int result = 0;
		switch(operator) {
			case '+': result = a+b; break;
			case '-': result = a-b; break;
			case '*': result = a*b; break;
			case '/': result = a/b; break;
		}
		return result;
	}
}