• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Rudolfo

gerar caracteres aleatorios...

2 mensagens neste tópico

boas malta ...

tenho que desenvolver um programita ... em que uma das funcionalidades, é gerar um conjunto de 4caracteres aleatorios - tipo password, para cada utilizador registado, ou que se registe ...

eu gerar numeros aleatorios entre 1 e 100, sei! com o Math.random() e depois multiplico por 100...

mas, gerar CARACTERES ... nao tou a ver como se faz ...

alguem me pode dar umas luzes??? ha algum metodo de algum package ou classe , ja existente???

cumps.

EDITADO:

estive a verificar o "armazem de codigo" aqui do forum.... e encontrei o GERADOR DE PASSWORDS....

com o seguinte Código:

   public String passGenerator(int passLength){
     java.util.Random r = new java.util.Random();
     char[] goodChar = { 'a', 'b', 'c', 'd', 'e', 'f', 'g',
         'h','i', 'j', 'k','l', 'm', 'n','o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'x','w',
         'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I','J', 'K','L',
         'M', 'N','O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z','1',
         '2', '3', '4', '5', '6', '7', '8', '9','ç',};
    StringBuffer sb = new StringBuffer();
    for (int i = 0; i < passLength; i++) {
      sb.append(goodChar[r.nextInt(goodChar.length)]);
    }
    return sb.toString();
  }

contudo, tenho duas duvidas neste codigo....

neste ciclo " for " :

  StringBuffer sb = new StringBuffer();

    for (int i = 0; i < passLength; i++) {

      sb.append(goodChar[r.nextInt(goodChar.length)]);

    }

    return sb.toString();

o que fazem as linhas de codigo, a negrito????

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes gerar um numero com o Math.random(), pedindo um int, e com um .toString passá-lo a String covertendo os números gerados..

Experimenta:

Random r = new Random();
String gerada = Integer.toString(Math.abs(r.nextInt()), 36).substring(0, 4);

Aqui retorna uma String com 6 caracteres, mas como apenas precisas de 4, utilizasse um substring(0,4) para receber apenas os primeiros 4...

EDIT:

É claro que com esse método é muito melhor, podendo escolheres os caracteres que queres que saiam e tudo..

StringBuffer sb = new StringBuffer();

O StringBuffer é como uma String, mas quando necessitas realizar várias operações de concatenação (como o append), torna-se mais rápida e eficaz...

sb.append(goodChar[r.nextInt(goodChar.length)]);

Aqui basicamente o append está a juntar o que tinhas ao que queres ter.. Tipo se fosse em String tinhas um nomestring = nomestring + (goodChar[r.nextInt(goodChar.length)]);

O código entre parêntesis, basicamente vai pedir um caracter na posição X que vai ser gerada pelo r.nextInt e que não ultrapasse o seu tamanho... Após gerado esse caracter, vai juntar aos outros anteriormente gerados com o tal append...

Finalmente quando atingir o numero máximo de caracteres definidos, sai do ciclo e retorna a String gerada...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora