Generar un caractere aleatorio en Java

Rupam Yadav 12 octubre 2023
  1. Generar un carácter aleatorio usando random.nextInt() en Java
  2. Generar un carácter aleatorio a partir de una cadena usando random.nextInt() y charAt()
  3. Generar un carácter aleatorio usando RandomStringUtils de Apache Commons
Generar un caractere aleatorio en Java

En este tutorial, introduciremos cómo podemos generar un carácter aleatorio utilizando varios métodos. Introduciremos tres métodos con ejemplos para entender mejor el tema.

Generar un carácter aleatorio usando random.nextInt() en Java

Random es la clase más usada en Java para generar un valor aleatorio, pero no puede generar caracteres. Para aleatorizar los caracteres usando la clase Random, podemos usar random.nextInt() para generar enteros aleatorios. Cada carácter corresponde a un número.

Podemos usar un carácter como un límite en la función nextInt(). En el siguiente ejemplo, podemos ver que se crea un objeto de la clase Random y luego se utiliza (random.nextInt(26) + 'a'). Aquí, el carácter 'a' corresponde al número 97, con el que podemos generar 26 números enteros aleatorios que corresponden al alfabeto en minúsculas.

Por último, tenemos que lanzar el entero generado a un carácter.

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);
  }
}

Producción :

Generated Random Character: p

Generar un carácter aleatorio a partir de una cadena usando random.nextInt() y charAt()

En el siguiente ejemplo, volveremos a utilizar la clase Random, y su método nextInt() pero generando un carácter aleatorio a partir de un conjunto de caracteres ya definido.

Abajo podemos ver que setOfCharacters es una cadena con varios caracteres, incluyendo alfabetos, números y símbolos. Para generar un carácter aleatorio a partir de esta cadena, usaremos la longitud de setOfCharacters como argumento de random.nextInt(). Una vez que se genera un entero aleatorio, lo usamos para obtener un carácter en un índice o posición aleatorios usando charAt(). Devolverá un char aleatorio 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);
  }
}

Producción :

Random character from string: 4

Generar un carácter aleatorio usando RandomStringUtils de Apache Commons

En el último ejemplo, usamos una clase RandomStringUtils de la biblioteca de Apache Commons. La clase RandomStringUtils tiene una función randomAlphanumeric()para generar cadenas alfanuméricas aleatorias. randomAlphanumeric(count) toma un solo argumento, que es la longitud de la cadena aleatoria que queremos.

En el siguiente ejemplo, hemos pasado sólo 1 al método randomAlphanumeric() ya que sólo queremos un único carácter. Pero esta función devuelve el resultado como una cadena. Por eso tenemos que convertirla en un char. Así que usamos charAt() para obtener el carácter de la cadena.

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

Artículo relacionado - Java Char