Gerar Carácter Aleatório em Java

Rupam Yadav 12 outubro 2023
  1. Gerar um carácter aleatório utilizando random.nextInt() em Java
  2. Gerar carácter aleatório a partir de uma string utilizando random.nextInt() e charAt()
  3. Gerar carácter aleatório utilizando RandomStringUtils do Apache Commons
Gerar Carácter Aleatório em Java

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 Yadav avatar Rupam Yadav avatar

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

Artigo relacionado - Java Char