Golang에서 고정 길이의 임의 문자열 생성

Jay Singh 2022년8월26일
Golang에서 고정 길이의 임의 문자열 생성

다양한 알고리즘은 특정 길이의 임의 문자열을 생성해야 합니다. 이 기사에서는 다양한 방법으로 Golang에서 고정 길이의 임의 문자열을 생성하는 방법을 보여줍니다.

math/rand를 사용하여 Golang에서 고정 길이의 임의 문자열 생성

Go의 math/rand 패키지는 의사 난수 생성을 제공합니다. 이 예제에서 패키지를 사용하고 고정 길이 문자열의 출력을 수신하기 위해 임의의 문자열을 전달합니다.

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

출력:

XVlBzgbaiCMRAjWwhTHctcuAxhxKQF

다른 예를 들어, 이 메서드는 각 문자가 포함된 문자열을 수락하고 그 중에서 무작위로 문자를 선택하여 문자열을 생성합니다.

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

출력:

BpLnfgDsc2WD8

Golang에서 고정 길이 문자열을 생성하는 방법을 완전히 이해하기 위해 마지막 예를 들어보겠습니다.

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

출력:

Random String

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

관련 문장 - Go String