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