Eu to fazendo esse programa para calcular uma expressão infixa, então eu leio uma expressão do tipo 12+ o resultado é 3. Quando eu acho um número eu empilho, aí quando eu acho um operador eu desempilho os números faço a soma e empilho o resultado. Só que quando eu acho um operador ele não entra no case ‘+’, qoe será que eu to fazendo de errado?
import java.util.Stack;
import java.util.Scanner;
public class BinaryTree
{
public static void main(String args[])
{
Stack<Integer> stack = new Stack<Integer>();
Scanner input = new Scanner(System.in);
String s = input.nextLine();
char []s1 = s.toCharArray();
int cont = 0;
int i, j;
switch(s1[cont])
{
case '+':
i = stack.pop();
j = stack.pop();
i += j;
stack.push(i);
cont++;
break;
case '-':
i = stack.pop();
j = stack.pop();
i = i - j;
stack.push(i);
cont++;
break;
case '*':
i = stack.pop();
j = stack.pop();
i = i * j;
stack.push(i);
cont++;
break;
case '/':
i = stack.pop();
j = stack.pop();
i = i / j;
stack.push(i);
cont++;
break;
default:
int aux = s1[cont] - '0';
stack.push(aux);
cont++;
break;
}
int ij = stack.pop();
System.out.println(ij);
}
}