Olá Pessoal,
construi uma função em JavaScript para retornar uma sequecia de 5 letras aleatoriamente. Gostaria de saber se algum colega tem essa mesma função JAVA ?
Olá Pessoal,
construi uma função em JavaScript para retornar uma sequecia de 5 letras aleatoriamente. Gostaria de saber se algum colega tem essa mesma função JAVA ?
Caso seja para criptografia, uma idéia seria utilizar um algoritimo que se baseia na tabela em unicode de forma diferenciada para cada locale, caso você venha utilizando, ou seja, a aplicação, identifica o tipo de locale do usuário e utiliza-o para realizar a formação de caracteres aleatórios de acordo com uma lógica qualquer.
Curiosa a sua pergunta… eu montei essa função aqui:
public String textoAleatorio(int numLetras) {
Random random = new Random();
StringBuilder sb = new StringBuilder(numLetras);
for (int i = 0; i < numLetras; i++)
sb.append((char)(random.nextInt(26) + 65));
return sb.toString();
}
Só algumas dicas, conforme mostra o item 30 do capítulo 7, do livro Effective Java, o método Math.random não é a melhor alternativa para números aleatórios, no caso do Java. Prefira usar a classe Random, como demonstrado nesse meu exemplinho. 
Outra coisa é quanto a concatenação de strings. Geralmente é uma boa idéia usar um StringBuilder (ou em versões mais antigas do Java um StringBuffer) para fazer concatenações. Ainda nesse capítulo do livro, o autor fala sobre isso no item 33. A concatenação com o operador + é extremamente lenta (para um texto de 800 caracteres, 9 vezes mais lenta, mas essa demora cresce numa taxa exponencial).
Só para você ter uma idéia, usar esse tipo de prática num loop chega a gerar problemas reais de performance, alguns dos quais até já detectei num profiler!
Na verdade, esse livro é recheado de pequenas e importantes dicas. Eu recomendo mesmo é que você leia ele inteiro!
Eu mesmo comprei e estou muito satisfeito!
Olá ViniGodoy,
eu ainda não tenho nada de experiência em Java, comecei estudar Java no inicio deste ano. A pensar de programar a mais de 15 anos entras linguagem Java ainda é ministério para mim desvendar.
Com isso agradeço muito a sua resposta.
Segue abaixo para os menos experientes como eu:
package br.com.conpro.Temporario;
import java.util.Random;
public class Ale {
public String textoAleatorio(int numLetras) {
Random random = new Random();
StringBuilder sb = new StringBuilder(numLetras);
for (int i = 0; i < numLetras; i++)
sb.append((char)(random.nextInt(26) + 65));
return sb.toString();
}
}
package br.com.conpro.Temporario;
import br.com.conpro.funcoesgeiser.UnicoCodigo;
public class Teste {
public static void main(String[] args) {
Ale ale = new Ale();
String x = ale.textoAleatorio(15);
System.out.println(x);
}
}