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
RandomStringUtils
do 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