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;
}
}