2 回答
TA贡献1784条经验 获得超2个赞
var seededRand = rand.New(rand.NewSource(time.Now().UnixNano()))
func StringWithCharset(length int, charset string) string {
b := make([]byte, length)
for i := range b {
b[i] = charset[seededRand.Intn(len(charset)-1)]
}
return string(b)
}
func main() {
rangeStart := 0
rangeEnd := 10
offset := rangeEnd - rangeStart
randLength := seededRand.Intn(offset) + rangeStart
charSet := "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ"
randString := StringWithCharset(randLength, charSet)
}
TA贡献1998条经验 获得超6个赞
您只需要定义您正在使用的字母表。类似于以下内容(您可以在 Go Playground 中摆弄它)。
package main
import (
"fmt"
"math/rand"
"strings"
"time"
)
func main() {
rand.Seed(time.Now().UnixNano())
var alphabet []rune = []rune("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")
rs := randomString(20, alphabet)
fmt.Printf("This is pretty random: %s\n", rs)
}
func randomString(n int, alphabet []rune) string {
alphabetSize := len(alphabet)
var sb strings.Builder
for i := 0; i < n; i++ {
ch := alphabet[rand.Intn(alphabetSize)]
sb.WriteRune(ch)
}
s := sb.String()
return s
}
- 2 回答
- 0 关注
- 108 浏览
添加回答
举报