Exception ao enviar MSG de confirmação

2 respostas
java
Freitax

Estou com um problema…
Ao executar meu método aparece uma exception:

java.lang.StringIndexOutOfBoundsException: String index out of range: 232132131


private String codAut() {

    Random rnd = new Random();

    int numCarc = 5; //Numero de caracteres 

    String carac = "";

    String let = "abcdefghijklmnopqrstuvqzyz"; //27 
    String ret = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //27
    String num = "[telefone removido]";//10

    String all = let + ret + num;

    //int i = 0; i >= 0; i--//
    
    for (int i = 0; i < numCarc; i++) {
      
        carac += all.charAt(rnd.nextInt() * all.length()); //
        
   }//for

    setCodigo(carac);
    
    return getCodigo();

}

2 Respostas

peczenyj

explica pra gente o que vc quer.

pq vc multiplicando um inteiro randomico que vai de 0 até MAX INT pelo tamanho da string certamente vai gerar um numero maior que o tamanho em si

o que vc quer, eu imagino, é pegar o MODULO do numero randomico pelo tamanho que ai garante uqe vc tem sempre algo dentro do range 0 … tamanho -1

carac += all.charAt(rnd.nextInt() % all.length());

Freitax

Tinha um problema com o numero randômico porém não tive grandes problemas para resolver.
Fico grato pela atenção!
Aloha

Criado 4 de novembro de 2016
Ultima resposta 4 de nov. de 2016
Respostas 2
Participantes 2