Exception ArrayIndexOutOfBounds ( já está feito)

1 resposta
srolbh

Alguém pode me dar uma luz? :smiley:

for (counter = 0; counter <argumentos.length; counter++){
			
	double result = 0;
	
	if (argumentos[counter].contains("/")){
				
		String temp[] = argumentos[counter].split("/");

                result = (double) Integer.parseInt(temp[0]) / (double) Integer.parseInt(temp[1]);
				
		argumentos[counter] = Double.toString(result);
				
		System.out.println("Valor1: "+temp[0] + " Valor 2: "+temp[1]);
										
	}
}

O exercicio é fazer uma calculadora polonesa reversa.
Eu to passando o argumentos[] pelo String[] args do main.

So que antes de fazer as devidas operacoes eu preciso procurar por argumentos fracionários (quem contem “/”), separa-los, dividi-los e ai jogar no argumentos[] para dar sequencia.

O problema é que ta dando excecao de array

( NA LINHA que contem: result = (double) Integer.parseInt(temp[0]) / (double) Integer.parseInt(temp[1]); )

e nao consigo enxergar o porque uma vez que temp[0] e temp[1] TEM conteudo, tanto que eu testei imprimindo esses valores. O split funciona, as conversoes funcionam e o resultado é exibido. Porem quando o for que eu fiz para argumentos[] continua, ele da a exception de array, como se ele tivesse iterando pelos valores de temp[] e dai estourando.

Argumentos: 1 1/2 + 4 - 6/2 * 9 /

Saída:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
	at Calculadora.CalculadoraPolonesa.calculos(CalculadoraPolonesa.java:47)
	at Calculadora.CalculadoraTeste.main(CalculadoraTeste.java:13)
Valor1: 1 Valor 2: 2
Valor1: 6 Valor 2: 2

Agradeço desde já…

1 Resposta

srolbh

Valeu pessoal, resolvi aqui…

faltava uma condicao no if para nao incluir somente operadores.

Abraços!

Criado 16 de novembro de 2006
Ultima resposta 16 de nov. de 2006
Respostas 1
Participantes 1