Generar un caractere aleatorio en Java
-
Generar un carácter aleatorio usando
random.nextInt()
en Java -
Generar un carácter aleatorio a partir de una cadena usando
random.nextInt()
ycharAt()
-
Generar un carácter aleatorio usando
RandomStringUtils
de Apache Commons
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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn