[Ruby] So generieren Sie eine zufällige Alphabet-Zeichenfolge

Einführung

・ Es ist ein Memorandum über das aufgeholte Wissen. ・ Ich würde mich freuen, wenn Sie auf Fehler hinweisen könnten.

Dieses Schlüsselwort

To_a Methode

Eine Methode zum Konvertieren von Hashes, Bereichsobjekten usw. in Arrays. Quelle: [Ruby] Lassen Sie uns verstehen, wie die to_a-Methode verwendet wird

Shuffle Methode

Die Shuffle-Methode ruft die Elemente des Arrays durch zufälliges Austauschen ab. Quelle: Erster Rubin! Sequenzen nach dem Zufallsprinzip erwerben / ersetzen | sample / shuffle

Join Methode

Die Join-Methode wird verwendet, wenn Sie die Elemente eines Arrays zu einer einzigen Zeichenfolge kombinieren möchten. Die Join-Methode konvertiert jedes Element des Arrays in eine Zeichenfolge und verknüpft die Argumente als Trennzeichen. Quelle: Aktive Ingenieure erklären, wie die Join-Methode von Ruby [für Anfänger] verwendet wird

Fazit: schreibe so

('a'..'z').to_a.shuffle[0..7].join

Versuchen Sie, den Befehl im Terminal auszuführen. Geben Sie "irb" ein und geben Sie den Befehl ein.

Terminal


munetomokazushi@mba ~ % irb
irb(main):001:0> ('a'..'z').to_a.shuffle[0..7].join
=> "yahxwgti"

Es wurde ein 8-stelliges Zufallsalphabet ausgegeben.

Ich werde genauer hinsehen

Zerlegen.

irb(main):001:0> ('a'..'z')

Beschreiben Sie zunächst, dass der Bereich von der alphabetischen Zeichenfolge "a" bis "z" reicht. .. ist ein Range-Objekt. .. enthält das letzte Zeichen, aber ... enthält nicht das letzte Zeichen. Hinweis.

irb(main):001:0> ('a'..'z').to_a
=> ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]

Es wurde ein Array mit der Methode .to_a.

irb(main):001:0> ('a'..'z').to_a.shuffle
=> ["o", "c", "q", "i", "m", "a", "k", "l", "t", "x", "z", "w", "n", "v", "b", "s", "h", "u", "r", "e", "g", "y", "f", "j", "p", "d"]

Das Array wurde mit der Shuffle-Methode gemischt. (Wird jedes Mal gemischt, wenn du rennst)

irb(main):001:0> ('a'..'z').to_a.shuffle[0..7]
=> ["r", "f", "b", "x", "y", "m", "g", "t"]

Ich bekomme von Anfang an das gemischte Array für 8 Zeichen. Beachten Sie, dass das Array bei 0 beginnt.

irb(main):001:0> ('a'..'z').to_a.shuffle[0..7].join
=> "yahxwgti"

Schließlich wurde die Join-Methode verwendet, um die Elemente des Arrays zu einer einzigen Zeichenfolge zu kombinieren.

2020.8.24 Nachtrag

Ich habe einen Kommentar erhalten, bitte zitieren Sie ihn und fügen Sie ihn hinzu. Vielen Dank, @ nodai2h_ITC!

Diese Methode generiert keine Zeichenfolge, die mehr als einmal dasselbe Zeichen hat, z. B. "agrjesao". Wenn Sie beispielsweise ein Programm für das dritte Spiel von Janken schreiben und ein Programm schreiben, das keinen einzigen Zug ausführt, würden Sie es nicht als "zufälligen Zug" bezeichnen. Außerdem können Sie mit dieser Methode keine zufällige alphabetische Zeichenfolge mit 30 Zeichen erstellen, die beispielsweise die Anzahl der alphabetischen Zeichen überschreitet. Wie wäre es also mit einer Methode zum Generieren einer "zufälligen Alphabet-Zeichenfolge", die dieselben Zeichen zulässt?

chars = ('a'..'z').to_a # = *'a'..'z'Aber ja
8.times.map{ chars.sample }.join

Dieses Ergebnis sieht so aus.

irb(main):009:0> chars = ('a'..'z').to_a
=> ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
irb(main):010:0> 8.times.map{ chars.sample }.join
=> "bjtaniyw"
irb(main):011:0> 8.times.map{ chars.sample }.join
=> "ntbtrdml"
irb(main):012:0> 8.times.map{ chars.sample }.join
=> "ajsgpcwn"
irb(main):013:0> 8.times.map{ chars.sample }.join
=> "vxdgakuc"
irb(main):014:0> 8.times.map{ chars.sample }.join
=> "xknqtmcq" #Das gleiche Alphabet erscheint zweimal. Es wird richtig zufällig angezeigt

Versuchen Sie, eine Methode zu definieren, um eine zufällige Zeichenfolge zu generieren

# string_Shuffle-Methode definieren
def string_shuffle(s)
  s.split('').shuffle.join
end

#Versuchen anzurufen
string_shuffle("foobar")
# string_Ergebnis des Aufrufs der Shuffle-Methode
=> "fboora" 

Apropos

irb(main):005:0> ('Ah'..'Hmm').to_a.shuffle[0..7].join
=> "Gofukuporekariso"

Sie können auch Hiragana verwenden.

Zusammenfassung

-Es kann auch beim Erstellen von zufälligen Subdomains verwendet werden. -Wenn Sie auf der Konsole laufen, geben Sie im Terminal "Rails c" ein, um die Konsole zu starten.

Referenz

[Ruby] Lassen Sie uns verstehen, wie die to_a-Methode verwendet wird Zum ersten Mal Ruby! Sequenzen nach dem Zufallsprinzip erwerben / ersetzen | sample / shuffle Aktive Ingenieure erklären, wie die Join-Methode von Ruby [für Anfänger] verwendet wird

Recommended Posts

[Ruby] So generieren Sie eine zufällige Alphabet-Zeichenfolge
So ändern Sie eine Zeichenfolge in einem Array in eine Zahl in Ruby
[Android] So konvertieren Sie eine Zeichenfolge in resourceId
So generieren Sie einen Primärschlüssel mit @GeneratedValue
So generieren Sie automatisch einen Konstruktor in Eclipse
So generieren Sie manuell ein JWT mit Knock in Rails
[Java] So schneiden Sie eine Zeichenfolge zeichenweise aus
Ruby regulärer Ausdruck Auszug aus einer bestimmten Zeichenfolge in eine Zeichenfolge
Verwendung von Ruby return
In Ruby Leet-Zeichenfolge konvertieren
Wie hinterlasse ich einen Kommentar?
[Ruby] Wie man auskommentiert
Verwendung von String [] args
Ruby: Wie man Cookies benutzt
So fügen Sie ein Video ein
So erstellen Sie eine Methode
Schneiden Sie eine Ruby-Schnur aus
[Ruby] So teilen Sie jede GraphQL-Abfrage in Dateien auf
Ruby mit AtCoder lernen 13 So erstellen Sie ein zweidimensionales Array
So zeigen Sie Diagramme in Ruby on Rails an (LazyHighChart)
Wie man in Ruby auf unbestimmte Zeit iteriert
So erstellen Sie einen Java-Container
So installieren Sie Ruby über rbenv
Verwendung von Ruby on Rails
Wie unterschreibe ich Minecraft MOD?
[Swift] So senden Sie eine Benachrichtigung
So erstellen Sie einen Begrüßungsbildschirm
Wie erstelle ich ein Maven-Projekt?
Verwendung der Ruby-Inject-Methode
So erstellen Sie ein Java-Array
Wie man Ruby's irb ausführt (interaktiver Ruby)
So überprüfen Sie den Inhalt der Java-Zeichenfolge mit fester Länge
So führen Sie einen Vertrag mit web3j aus
So sortieren Sie eine Liste mit Comparator
So erstellen Sie eine Abfrage mithilfe von Variablen in GraphQL [Verwenden von Ruby on Rails]
[Persönliches Memo] Interaktion mit dem Zufallszahlengenerator in Java
[Basic] So schreiben Sie ein Dockerfile Selbstlernend ②
So fügen Sie ein Video in Rails ein
So fügen Sie einen neuen Hash / Array hinzu
So erstellen Sie ein Maven-Repository für 2020
Rubinlänge, -größe, -anzahl Verwendung
Wie erstelle ich einen Discord Bot (Java)
So geben Sie eine Java-Zeichenfolge auf dem Konsolenbildschirm aus
So erhalten Sie das aktuelle Datum als Zeichenfolge im Format JJJJMMTT
[Java] So verwenden Sie Teilzeichenfolgen, um einen Teil einer Zeichenfolge auszuschneiden
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 6.x)
Extrahieren Sie einen Teil einer Zeichenfolge in Ruby