Generieren Sie eine zufällige Zeichenfolge mit fester Länge in Golang

Jay Singh 26 August 2022
Generieren Sie eine zufällige Zeichenfolge mit fester Länge in Golang

Viele verschiedene Algorithmen benötigen die Erzeugung zufälliger Zeichenfolgen einer bestimmten Länge. Dieser Artikel zeigt Ihnen, wie Sie in Golang mit verschiedenen Methoden eine zufällige Zeichenfolge mit fester Länge erzeugen.

Verwenden Sie math/rand, um eine zufällige Zeichenfolge mit fester Länge in Golang zu generieren

Das math/rand-Paket von Go bietet die Generierung von Pseudozufallszahlen. Wir verwenden das Paket in diesem Beispiel und übergeben eine zufällige Zeichenfolge, um die Ausgabe einer Zeichenfolge fester Länge zu erhalten.

package main

import (
    "fmt"
    "math/rand"
)

func main() {
    fmt.Println(RandomString(30))
}

func RandomString(n int) string {
    var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")

    b := make([]rune, n)
    for i := range b {
        b[i] = letterRunes[rand.Intn(len(letterRunes))]
    }
    return string(b)
}

Ausgabe:

XVlBzgbaiCMRAjWwhTHctcuAxhxKQF

Als weiteres Beispiel akzeptiert die Methode eine Zeichenfolge, die jeden Buchstaben enthält, und erzeugt eine Zeichenfolge, indem sie zufällig einen Buchstaben daraus auswählt.

package main

import (
    "fmt"
    "math/rand"
)

func RandomString(n int) string {
    var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")

    s := make([]rune, n)
    for i := range s {
        s[i] = letters[rand.Intn(len(letters))]
    }
    return string(s)
}

func main() {
    fmt.Println(RandomString(13))
}

Ausgabe:

BpLnfgDsc2WD8

Lassen Sie uns ein letztes Beispiel haben, um vollständig zu verstehen, wie eine Zeichenfolge mit fester Länge in Golang generiert wird.

package main

import (
    "fmt"
    "math/rand"
)

func main() {
    fmt.Println("Random String")
    fmt.Println()
    fmt.Println("11 chars: " + RandomString(11))
    fmt.Println("20 chars: " + RandomString(20))
    fmt.Println("32 chars: " + RandomString(32))
}

func RandomString(n int) string {
    var letter = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")

    b := make([]rune, n)
    for i := range b {
        b[i] = letter[rand.Intn(len(letter))]
    }
    return string(b)
}

Ausgabe:

Random String

11 chars: BpLnfgDsc2W
20 chars: D8F2qNfHK5a84jjJkwzD
32 chars: kh9h2fhfUVuS9jZ8uVbhV3vC5AWX39IV

Verwandter Artikel - Go String