Felipe,
Esse é um erro que ocorre quando se tenta converter uma String inválida para um valor int. No caso, ocorre a tentativa de conversão de “1+2” em inteiro, mas esse não é um formato válido pois inteiros não contém um sinal “+” no meio. O que provavelmente está acontecendo é uma falha na hora de separar os valores da String operacao em seus componentes. O que precisa acontecer para que o código funcione é que operacao esteja no seguinte formato “numero1 sinal numero2″, com apenas um espaço separando os operandos e o operador. Verifique se é assim que a String operacao está antes de ser executado seu método split().
Além disso, nos testes if abaixo dessa parte do código, os trechos sinal.equals(” + “), sinal.equals(” – “), sinal.equals(” x “) e sinal.equals(” / “) devem ser trocados por sinal.equals(“+”), sinal.equals(“-“), sinal.equals(“x”) e sinal.equals(“/”), respectivamente.
Espero que funcione. Caso contrário, vamos precisar de mais informações, por exemplo, qual String operacao está sendo usada? Qual valor ela armazena logo antes de ser processada no método split()?