Java >> Java tutorial >  >> Tag >> String

Java genererer tilfældige strenge

Java genererer tilfældige strenge | På denne side vil vi se forskellige måder at generere tilfældig streng Java på. For at generere en tilfældig streng bruger vi en tilfældig klasse, der findes i Java-biblioteket.

Java-generering af tilfældige strenge ved hjælp af randomUUID()

Metoden randomUUID() defineret i UUID-klassen er en statisk fabrik til at hente en type 4 (pseudo-tilfældigt genereret) UUID. UUID'et genereres ved hjælp af en kryptografisk stærk pseudo-tilfældig talgenerator.

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

Her er nogle output-eksempler på generering af tilfældig streng ved hjælp af randomUUID():-

Tilfældig streng:409962da-daeb-4685-87b9-47db2354e266

Tilfældig streng:0eff811c-cf51-4b74-a774-9a4680d8cc00

Tilfældig streng:cc383d27-b030-4f98-a60a-ba13c3b23800

Tilfældig streng:8ead83a3-43b8-4af3-9c04-ba4623e1d8ba

Java Random String Generator Program

I nedenstående program har vi taget alle store bogstaver fra A-Z og en streng med længden 9. Vi har brugt tilfældige klassemetoder til at vælge et hvilket som helst tegn fra A-Z og tilføje det til den nyligt genererede streng.

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

Output:-

Tilfældig streng er:CSHDDVOIU

Tilfældig streng er:HHZIOKWRL

Tilfældig streng er:JWFRCALFU

I ovenstående program tog vi kun store bogstaver, derfor indeholder de genererede strenge kun store bogstaver. I nedenstående program tager vi store bogstaver, små bogstaver og tal for at generere strengen.

Java genererer tilfældige strenge – alfanumerisk streng

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

Output:-

Tilfældig streng er:iSIA0iasDh

Tilfældig streng er:79LmFdFKOL

Tilfældig streng er:oTdJTWpbhw

Hvis du vil have nogle specialtegn i den genererede streng, så erklær en strengvariabel efter "string3"-variablen og initialiser den med nogle specialtegn. Og føj den streng til "alphaNumeric".

Generer Random Base64 String Java

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

Output:-

Random Base64 String er:Q3diKGRMaG8zPlldT2JHLg==

Random Base64 String er:MipLMj50IVR0SyBkXVJjeQ==

Random Base64 String er:QnFHMnE3dDAqbkApXHR2dA==

I ovenstående program til at generere tilfældig base64-streng Java, har vi først defineret en generString()-metode til at generere en tilfældig streng. GenererString()-metoden vil generere en tilfældig streng med en længde på 16 tegn, og den kan indeholde store bogstaver, små bogstaver, tal og specialtegn, som er tilladt at bruge i en adgangskode. Se- Liste over specialtegn til adgangskoden.

Derefter definerede vi en generBase64String()-metode, som internt kalder generString() for at få en tilfældig streng, og så konverterede vi dem til Base64.


Java tag