Generieren von Zufallszeichen in Java

Rupam Yadav 12 Oktober 2023
  1. Erzeugen eines Zufallszeichens mit random.nextInt() in Java
  2. Zufällige Zeichen aus einer Zeichenkette mit random.nextInt() und charAt() generieren
  3. Erzeugen eines zufälligen Zeichens mit RandomStringUtils von Apache Commons
Generieren von Zufallszeichen in Java

In diesem Tutorial werden wir vorstellen, wie wir ein zufälliges Zeichen mit Hilfe verschiedener Methoden erzeugen können. Wir werden drei Methoden mit Beispielen vorstellen, um das Thema besser zu verstehen.

Erzeugen eines Zufallszeichens mit random.nextInt() in Java

Random ist die am häufigsten verwendete Klasse in Java, um einen Zufallswert zu erzeugen, aber sie kann keine Zeichen erzeugen. Um mit der Klasse Random zufällige Zeichen zu erzeugen, können wir random.nextInt() verwenden, um zufällige Ganzzahlen zu generieren. Jedes Zeichen entspricht einer Zahl.

Wir können ein Zeichen als Begrenzung in der Funktion nextInt() verwenden. Im folgenden Beispiel sehen wir, dass ein Objekt der Klasse Random erstellt wird und dann (random.nextInt(26) + 'a') verwendet wird. Hier entspricht das Zeichen 'a' der Zahl 97, mit der wir 26 zufällige Ganzzahlen erzeugen können, die dem Kleinbuchstabenalphabet entsprechen.

Zum Schluss müssen wir die generierte Ganzzahl in ein char konvertieren.

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

Ausgabe:

Generated Random Character: p

Zufällige Zeichen aus einer Zeichenkette mit random.nextInt() und charAt() generieren

Im nächsten Beispiel werden wir wieder die Klasse Random und ihre Methode nextInt() verwenden, aber ein zufälliges Zeichen aus einer bereits definierten Menge von Zeichen erzeugen.

Unten sehen wir, dass setOfCharacters eine Zeichenkette mit mehreren Zeichen ist, darunter Alphabete, Zahlen und Symbole. Um ein zufälliges Zeichen aus dieser Zeichenkette zu erzeugen, verwenden wir die Länge von setOfCharacters als Argument von random.nextInt(). Sobald eine zufällige Ganzzahl erzeugt wurde, verwenden wir sie, um ein Zeichen an einem zufälligen Index oder einer zufälligen Position mit charAt() zu erhalten. Es wird ein zufälliges char aus setOfCharacters zurückgegeben.

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

Ausgabe:

Random character from string: 4

Erzeugen eines zufälligen Zeichens mit RandomStringUtils von Apache Commons

Im letzten Beispiel verwenden wir eine Klasse RandomStringUtils aus der Apache Commons Bibliothek. Die Klasse RandomStringUtils hat eine Funktion randomAlphanumeric(), um zufällige alphanumerische Zeichenketten zu erzeugen. Die Funktion randomAlphanumeric(count) benötigt ein einziges Argument, nämlich die Länge der gewünschten zufälligen Zeichenkette.

Im folgenden Beispiel haben wir nur 1 an die Methode randomAlphanumeric() übergeben, da wir nur ein einziges Zeichen haben wollen. Aber diese Funktion gibt das Ergebnis als Zeichenkette zurück. Deshalb müssen wir es in ein char konvertieren. Also verwenden wir charAt(), um das Zeichen aus der Zeichenkette zu erhalten.

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

Ausgabe:

Generated Random Character: L
Rupam Yadav avatar Rupam Yadav avatar

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

Verwandter Artikel - Java Char