Générer un caractère aléatoire en Java
-
Générer un caractère aléatoire en utilisant
random.nextInt()
en Java -
Générer un caractère aléatoire à partir d’une chaîne de caractères en utilisant
random.nextInt()
etcharAt()
-
Générer un caractère aléatoire en utilisant les
RandomStringUtils
d’Apache Commons
Dans ce tutoriel, nous introduirons la manière dont nous pouvons générer un caractère aléatoire en utilisant plusieurs méthodes. Nous présenterons trois méthodes avec des exemples pour mieux comprendre le sujet.
Générer un caractère aléatoire en utilisant random.nextInt()
en Java
La classe Random
est la plus utilisée en Java pour générer une valeur aléatoire, mais elle ne peut pas générer de caractères. Pour randomiser des caractères en utilisant la classe Random
, nous pouvons utiliser random.nextInt()
pour générer des entiers aléatoires. Chaque caractère correspond à un nombre.
Nous pouvons utiliser un caractère comme une borne dans la fonction nextInt()
. Dans l’exemple suivant, nous pouvons voir qu’un objet de la classe Random
est créé et qu’ensuite (random.nextInt(26) + 'a')
est utilisé. Ici, le caractère 'a'
correspond au nombre 97, ce qui nous permet de générer 26 entiers aléatoires correspondant à l’alphabet minuscule.
Enfin, nous devons convertir l’entier généré en un caractère.
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);
}
}
Production :
Generated Random Character: p
Générer un caractère aléatoire à partir d’une chaîne de caractères en utilisant random.nextInt()
et charAt()
Dans l’exemple suivant, nous utiliserons à nouveau la classe Random
et sa méthode nextInt()
mais nous générerons un caractère aléatoire à partir d’un ensemble de caractères déjà défini.
Ci-dessous, nous pouvons voir que setOfCharacters
est une chaîne de plusieurs caractères, comprenant des alphabets, des chiffres et des symboles. Pour générer un caractère aléatoire à partir de cette chaîne, nous utiliserons la longueur de setOfCharacters
comme argument de random.nextInt()
. Une fois qu’un entier aléatoire est généré, nous l’utilisons pour obtenir un caractère à un index ou une position aléatoire en utilisant charAt()
. Il retournera un char
aléatoire à partir 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);
}
}
Production :
Random character from string : 4
Générer un caractère aléatoire en utilisant les RandomStringUtils
d’Apache Commons
Dans le dernier exemple, nous utilisons une classe RandomStringUtils
de la bibliothèque Apache Commons. La classe RandomStringUtils
a une fonction randomAlphanumeric()
pour générer des chaînes de caractères alphanumériques aléatoires. La fonction randomAlphanumeric(count)
prend un seul argument, c’est-à-dire la longueur de la chaîne aléatoire que nous voulons.
Dans l’exemple ci-dessous, nous avons passé seulement 1 à la méthode randomAlphanumeric()
car nous ne voulons qu’un seul caractère. Mais cette fonction renvoie le résultat sous forme de chaîne de caractères. C’est pourquoi nous devons la convertir en un caractère. Donc, nous utilisons charAt()
pour obtenir le caractère de la chaîne de caractères.
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);
}
}
Production :
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