Java >> Tutoriel Java >  >> Tag >> String

Java générant des chaînes aléatoires

Java générant des chaînes aléatoires | Sur cette page, nous verrons différentes manières de générer des chaînes aléatoires Java. Pour générer une chaîne aléatoire, nous utilisons une classe aléatoire présente dans la bibliothèque Java.

Java Génération de chaînes aléatoires à l'aide de randomUUID()

La méthode randomUUID() définie dans la classe UUID est une fabrique statique permettant de récupérer un UUID de type 4 (généré de manière pseudo-aléatoire). L'UUID est généré à l'aide d'un générateur de nombres pseudo-aléatoires cryptographiquement fort.

import java.util.UUID;

public class Main {
   public static void main(String args[]) {
      UUID uuid = UUID.randomUUID();
      String randomString = uuid.toString();
      System.out.println("Random string: " + randomString);
   }
}

Voici quelques exemples de sortie de génération de chaîne aléatoire à l'aide de randomUUID() :-

Chaîne aléatoire :409962da-daeb-4685-87b9-47db2354e266

Chaîne aléatoire :0eff811c-cf51-4b74-a774-9a4680d8cc00

Chaîne aléatoire :cc383d27-b030-4f98-a60a-ba13c3b23800

Chaîne aléatoire :8ead83a3-43b8-4af3-9c04-ba4623e1d8ba

Programme générateur de chaînes aléatoires Java

Dans le programme ci-dessous, nous avons pris tous les caractères majuscules de A à Z et une chaîne de longueur 9. Nous avons utilisé des méthodes de classe aléatoires pour sélectionner n'importe quel caractère de A à Z et l'ajouter à la chaîne nouvellement générée.

import java.util.Random;

public class Main {
   public static void main(String[] args) {
      String string = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

      StringBuilder strbuilder = new StringBuilder();
      Random rand = new Random();
      int length = 9;

      for (int i = 0; i < length; i++) {
         int index = rand.nextInt(string.length());
         char randomChar = string.charAt(index);
         strbuilder.append(randomChar);
      }

      String randomString = strbuilder.toString();
      System.out.println("Random String is: " + randomString);
   }
}

Sortie :-

La chaîne aléatoire est :CSHDDVOIU

La chaîne aléatoire est :HHZIOKWRL

La chaîne aléatoire est :JWFRCALFU

Dans le programme ci-dessus, nous n'avons pris que des caractères majuscules, donc les chaînes générées ne contiennent que des caractères majuscules. Dans le programme ci-dessous, nous prendrons des majuscules, des minuscules et des chiffres pour générer la chaîne.

Java générant des chaînes aléatoires – chaîne alphanumérique

import java.util.Random;

public class Main {
   public static void main(String[] args) {
      String string1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
      String string2 = string1.toLowerCase();
      // Or, String string2 = "abcdefghijklmnopqrstuvwxyz";
      String string3 = "0123456789";

      // create alphanumeric string
      String alphaNumeric = string1 + string2 + string3;

      StringBuilder strbuilder = new StringBuilder();
      Random rand = new Random();
      int length = 10;
      for (int i = 0; i < length; i++) {
         int index = rand.nextInt(alphaNumeric.length());
         strbuilder.append(alphaNumeric.charAt(index));
      }

      String randomString = strbuilder.toString();
      System.out.println("Random String is: " + randomString);
   }
}

Sortie :-

La chaîne aléatoire est :iSIA0iasDh

La chaîne aléatoire est :79LmFdFKOL

La chaîne aléatoire est :oTdJTWpbhw

Si vous voulez des caractères spéciaux dans la chaîne générée, déclarez une variable de chaîne après la variable "string3" et initialisez-la avec des caractères spéciaux. Et ajoutez cette chaîne à "alphanumérique".

Générer une chaîne Java Base64 aléatoire

import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import java.util.Random;

public class Main {
   public static String generateBase64String() {
      String str = generateString();
      try {
         return Base64.getEncoder()
          .encodeToString(str.getBytes(StandardCharsets
          .UTF_8.toString()));
      } catch (UnsupportedEncodingException ex) {
         throw new RuntimeException(ex);
      }
   }

   private static String generateString() {
      String uppercaseChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
      String lowercaseChars = uppercaseChars.toLowerCase();
      String numbers = "0123456789";
      String specialChars = 
                  " !\"\'#$%&()*+,-./:;<=>[email protected][\\]^_`{|}~";
      String string = uppercaseChars + lowercaseChars + 
                      numbers + specialChars;

      StringBuilder strbuilder = new StringBuilder();
      Random rand = new Random();
      int length = 16;
      for (int i = 0; i < length; i++) {
         int index = rand.nextInt(string.length());
         strbuilder.append(string.charAt(index));
      }

      return strbuilder.toString();
   }

   public static void main(String[] args) {
      System.out.println("Random Base64 String is: " 
                        + generateBase64String());
   }
}

Sortie :-

La chaîne Base64 aléatoire est :Q3diKGRMaG8zPlldT2JHLg==

La chaîne Base64 aléatoire est :MipLMj50IVR0SyBkXVJjeQ==

La chaîne Base64 aléatoire est :QnFHMnE3dDAqbkApXHR2dA==

Dans le programme ci-dessus pour générer une chaîne Java aléatoire en base64, nous avons d'abord défini une méthode generateString() pour générer une chaîne aléatoire. La méthode generateString() générera une chaîne aléatoire d'une longueur de 16 caractères et elle peut contenir des caractères majuscules, des caractères minuscules, des chiffres et des caractères spéciaux qui sont autorisés à être utilisés dans un mot de passe. Voir- Liste des caractères spéciaux pour le mot de passe.

Après cela, nous avons défini une méthode generateBase64String() qui appelle en interne generateString() pour obtenir une chaîne aléatoire, puis nous les avons converties en Base64.


Balise Java