Générer un caractère aléatoire en Java

  1. Générer un caractère aléatoire en utilisant random.nextInt() en Java
  2. Générer un caractère aléatoire à partir d’une chaîne de caractères en utilisant random.nextInt() et charAt()
  3. 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

Article connexe - Java Char

  • Comment convertir des caractères en Int en Java