Erro Estranho para mim

3 respostas
M

No seguinte código abaixo quando compilo não da erro nenhum, mas quando executo aparece esse erro na tela do Dos:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 2
at java.lang.String.charAt(string.java:444)
at trabalho.main(trabalho.java: 62)

Eu acho que o erro accontece nessa parte mas não descobri onde:

case 2: // quando for dezena
         {
            
            int und=Integer.parseInt(String.valueOf(numero.charAt(1)));
            int dez=Integer.parseInt(String.valueOf(numero.charAt(0)));
                        
            if (dez ==0) //testa se não é unidade
               {
                  
                  JOptionPane.showMessageDialog (null,unidade[und]);
               
               }else if (dez==1) //se for da primeira dezena
                     {
                        
                        dez=und+10;
                        JOptionPane.showMessageDialog (null,unidade[dez]);
                     
                     } else //entre 20 e 99
                        {
                        
                           if (und==0)                     
                              JOptionPane.showMessageDialog (null,dezena[dez]);
                              
                           else
                              JOptionPane.showMessageDialog (null,dezena[dez]+conjuncao[1]+unidade[und]);
                        
                        }
         }

3 Respostas

A

Olá mauriliogil!

Esse erro indica que você está tentando acessar uma posição de uma String que não existe! Por exemplo, tentar acessar a posição 3 de uma String que tem tamanho 2.

O método causador do erro seria o chatAt

Acho que é isso!

:wink:

M

Mas eu informo o valor certo, Ex.: nesete código o switch é para saber o tamanho da string, se cair no dois o valor da string tem duas casas ai ele não acessa osição sem valor, isso que eu nçao entendi.

S

Bom, o problema está acontecendo na linha 62 da classe trabalho, mais precisamente no método main().

<blockquote>Exception in thread “main” java.lang.StringIndexOutOfBoundsException: String index out of range: 2

at java.lang.String.charAt(string.java:444)

at trabalho.main(trabalho.java: 62)</blockquote>

Você pegou a posição número 2 de uma String que não tem essa posição.
Não sei se é o caso, mas lembre-se que as posições vão de 0 a n-1.

Criado 3 de maio de 2005
Ultima resposta 3 de mai. de 2005
Respostas 3
Participantes 3