Erro Estranho para mim

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:

[code]
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]);
                    
                    }
     }[/code]

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:

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.

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

[quote]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)[/quote]

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.