static List<Character> precedence;
public static void main(String args[]) throws Exception {
precedence = new ArrayList<Character>();
System.out.println(expr + " = " + evaluate(expr));
private static int evaluate(String expr) throws Exception {
Stack<Character> opStack = new Stack<Character>();
Stack<Integer> valueStack = new Stack<Integer>();
char[] tokens = expr.toCharArray();
for(Character c : tokens) {
if(c >= '0' && c <= '9') {
valueStack.push(Integer.parseInt(c.toString()));
while(!opStack.isEmpty() && hasprecedence(c, opStack.peek())) {