Gerar Carácter Aleatório em Java
-
Gerar um carácter aleatório utilizando
random.nextInt()em Java -
Gerar carácter aleatório a partir de uma string utilizando
random.nextInt()echarAt() -
Gerar carácter aleatório utilizando
RandomStringUtilsdo Apache Commons
Neste tutorial, iremos introduzir como podemos gerar um carácter aleatório usando vários métodos. Introduziremos três métodos com exemplos para compreender melhor o tópico.
Gerar um carácter aleatório utilizando random.nextInt() em Java
Random é a classe mais comummente utilizada em Java para gerar um valor aleatório, mas não pode gerar caracteres. Para aleatorizar caracteres utilizando a classe Random, podemos utilizar random.nextInt() para gerar números inteiros aleatórios. Cada carácter corresponde a um número.
Podemos utilizar um carácter como um limite na função nextInt(). No exemplo seguinte, podemos ver que um objecto da classe Random é criado e depois (random.nextInt(26) + 'a') é utilizado. Aqui, o caractere 'a' corresponde ao número 97, utilizando o qual podemos gerar 26 números inteiros aleatórios que correspondem ao alfabeto em minúsculas.
Finalmente, temos de lançar o inteiro gerado a um caractere.
import java.util.Random;
public class RandomChar {
public static void main(String[] args) {
Random random = new Random();
char randomizedCharacter = (char) (random.nextInt(26) + 'a');
System.out.println("Generated Random Character: " + randomizedCharacter);
}
}
Resultado:
Generated Random Character: p
Gerar carácter aleatório a partir de uma string utilizando random.nextInt() e charAt()
No exemplo seguinte, utilizaremos novamente a classe Random, e o seu método nextInt(), mas geramos um carácter aleatório a partir de um array já definido de caracteres.
Abaixo podemos ver que setOfCharacters é uma string com vários caracteres, incluindo alfabetos, números, e símbolos. Para gerar um carácter aleatório a partir desta string, utilizaremos o comprimento de setOfCharacters como argumento de random.nextInt(). Uma vez gerado um inteiro aleatório, utilizamo-lo para obter um caractere num índice ou posição aleatória, utilizando charAt(). Ele irá retornar um char aleatório de setOfCharacters.
import java.util.Random;
public class RandomChar {
public static void main(String[] args) {
Random random = new Random();
String setOfCharacters = "abcdefghxyz1234567-/@";
int randomInt = random.nextInt(setOfCharacters.length());
char randomChar = setOfCharacters.charAt(randomInt);
System.out.println("Random character from string: " + randomChar);
}
}
Resultado:
Random character from string : 4
Gerar carácter aleatório utilizando RandomStringUtils do Apache Commons
No último exemplo, utilizamos uma classe RandomStringUtils da biblioteca Apache Commons. A classe RandomStringUtils tem uma função randomAlphanumeric() para gerar strings alfanuméricas aleatórias. A função randomAlphanumeric(count) toma um único argumento, que é o comprimento da string aleatória que queremos.
No exemplo abaixo, passamos apenas 1 para o método randomAlphanumeric(), pois só queremos um único caractere. Mas esta função retorna o resultado como uma string. É por isso que temos de o converter para um char. Assim, utilizamos charAt() para obter o caracter da string.
import org.apache.commons.lang3.RandomStringUtils;
public class RandomChar {
public static void main(String[] args) {
String randomizedString = RandomStringUtils.randomAlphanumeric(1);
char randomizedCharacter = randomizedString.charAt(0);
System.out.println("Generated Random Character: " + randomizedCharacter);
}
}
Resultado:
Generated Random Character: L
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn