Zufällige Zeichenfolgen sind hilfreiche Merkmale in verschiedenen Fällen wie Verschlüsselung, Datensamen und mehr. Obwohl es unmöglich ist, mit deterministischen Maschinen einen wirklich willkürlichen Wert zu schaffen, können wir eine Reihe von Pseudorandomwerten erhalten, die zufällig generiert erscheinen.
Diese Anleitung zeigt Ihnen, wie Sie eine zufällige Zeichenfolge mit Ruby generieren. Da eine Zeichenfolge eine Reihe alphanumerischer Zeichen ist, beginnen wir mit den Grundlagen und generieren zufällige Zahlen und Zeichen.
Erzeugen einer Zufallszahl
Bevor wir uns darauf konzentrieren, zufällige Zeichenfolgen in Ruby zu erzeugen, lassen Sie uns lernen, wie Sie eine Zufallszahl in Ruby generieren können.
Wir verwenden die Rand -Methode, um Zufallszahlen zu generieren. Wenn Sie die Rand -Methode ohne Argumente aufrufen, generiert sie eine schwebende Nummer im Bereich von 0.0 und 1.0
Rand ()Mit der Rand -Funktion können Sie auch eine Ganzzahl als Argument übergeben. Wenn die Methode einen bereitgestellten Ganzzahlwert hat, generiert sie einen zufälligen Ganzzahlwert im Bereich von 0 zum angegebenen Wert.
Rand (10)Im obigen Beispiel erhalten Sie jedes Mal, wenn Sie die obige Methode ausführen, einen Wert zwischen 0 und 10, exklusiv.
Angenommen, Sie möchten eine Zufallszahl in einem bestimmten Bereich generieren. In einem solchen Szenario können Sie den Bereich als:
Start stopZum Beispiel, um einen Zufallswert zwischen 30 und 60 zu erzeugen:
Rand (30… 60)Das obige Beispiel ist ausschließlich des Endwerts. Dies bedeutet, dass 60 nicht als zufälliger Wert aufgenommen werden.
Wenn Sie einen Endwert einfügen möchten, verwenden Sie die Double-Dot-Notation als:
Rand (30… 60)Erzeugen einer zufälligen Zeichenfolge
Obwohl es verschiedene Möglichkeiten gibt, eine zufällige Zeichenfolge in Ruby zu erzeugen, werden wir uns an eine einfache Art und Weise halten, die integrierte Ruby-Methoden und -funktionalität verwendet.
Schritt 1 - Zeichen von Zeichen erzeugen
Die erste Methode besteht darin, eine Reihe von Zeichen zu generieren. Dazu werden wir die Bereichsmethode in Ruby verwenden.
Beispielsweise generiert der folgende Code eine Reihe von unteren Fallzeichen.
('a' ... 'z')Als nächstes müssen wir die Ausgabe aus dem obigen Code in ein Array konvertieren. Wir können die TO_A -Methode verwenden wie:
('a' ... 'z').zu einemDie obige Methode gibt uns eine Reihe von Zeichen.
Sie können nur Charaktere mit niedrigeren Fall verwenden. Sie können Großbuchstaben als:
('A' ... 'z').zu einemSchritt 2 - Mischen Sie die erzeugten Zeichen
Im vorherigen Beispiel generieren wir eine Reihe von Zeichen in sequenzieller Reihenfolge. Daher sind die Werte nicht in zufälliger Reihenfolge.
Um die Zufälligkeit für jedes Mal, wenn der Block aufgerufen wird, einzuführen, können wir die Shuffle -Methode verwenden.
Die Shuffle -Methode gibt ein neues Array mit den Elementen im vorherigen Array zurück.
Nehmen Sie das erste Beispiel -Array und mischen Sie es.
('a' ... 'z').zu einem.MischenIn diesem Beispiel werden die Zeichen jedes Mal, wenn wir den Code ausführen, in zufälliger Reihenfolge gemischt.
Schritt 3 - Konvertieren Sie in String
Bis zu diesem Zeitpunkt haben wir nur eine Reihe von Zeichen erstellt. Der nächste Schritt besteht darin, die Zeichen im Array in eine einzelne Zeichenfolge umzuwandeln, die wir mit der Join -Methode erreichen können.
Zum Beispiel:
zu einem.Mischen.verbindenDurch Ausführen des obigen Codes gibt eine zufällige Zeichenfolge von Kleinbuchstaben Zeichen zurück.
Schritt 4 - Mehr Zufälligkeit
Wir können unserer generierten Zeichenfolge mehr Zufälligkeit einführen, indem wir Großbuchstaben und numerische Werte einführen.
Wir können dies tun von:
[ *'a' ... 'z', *0… 9, *'a' ... 'Z']Das obige Beispiel erzeugt eine Reihe von Kleinbuch-, Groß- und numerischen Werten.
Verwenden Sie die Shuffle -Methode, um sie zufällig zu randomisieren, und schließen Sie eine Zeichenfolge an. Unten ist ein Beispielausgang:
[ *'a' ... 'z', *0… 9, *'a' ... 'Z'].Mischen.verbindenAngenommen, wir wollen eine bestimmte Länge erhalten. Zum Beispiel um eine Länge von 10 zu generieren 10. Wir können den Bereich an die Shuffle -Methode übergeben wie:
[ *'a' ... 'z', *0… 9, *'a' ... 'Z'].Shuffle [0… 10].verbindenMethode 2 -securerandom -Modul
Ruby stellt auch das Securerandom -Paket zur Erzeugung von zufälligen Zeichenfolgen bereit. Es unterstützt Hex, Base64 und Bytes.
Um es zu verwenden, importieren Sie es als:
erfordern "Securerandom"Generieren Sie einen zufälligen Base64 -Wert als:
Securerandom.Basis64Geben Sie für Hex: Geben Sie ein:
Securerandom.verhexenSchließlich mit Bytes:
Securerandom.random_bytesSchließen
Diese Anleitung befasst.