vRp.CD2g_test/utils/random/string.go

71 lines
2.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package random
import (
"fmt"
"math/rand"
"strconv"
)
// ChineseName 返回一个随机组成的中文姓名。
func ChineseName() string {
var first string // 名
// 随机产生2位或者3位的名
for i := 0; i <= rand.Intn(1); i++ {
first = fmt.Sprint(firstName[rand.Intn(firstNameLen-1)])
}
//返回姓名
return fmt.Sprintf("%s%s", fmt.Sprint(lastName[rand.Intn(lastNameLen-1)]), first)
}
// EnglishName 返回一个随机组成的英文姓名。
func EnglishName() string {
var englishName string
for i := 0; i <= rand.Intn(1); i++ {
englishName = fmt.Sprint(engName[rand.Intn(englishNameLen-1)])
}
first := engName[rand.Intn(englishNameLen-1)]
last := englishName
if first == last {
return first
} else {
return fmt.Sprintf("%s %s", fmt.Sprint(engName[rand.Intn(englishNameLen-1)]), englishName)
}
}
// Name 返回一个随机组成的中文或英文姓名
// - 以1/2的概率决定生产的是中文还是英文姓名。
func Name() string {
if Int64(0, 1000) > 500 {
return EnglishName()
} else {
return ChineseName()
}
}
// NumberString 返回一个介于min和max之间的string类型的随机数。
func NumberString(min int, max int) string {
return strconv.Itoa(int(Int64(int64(min), int64(max))))
}
// NumberStringRepair 返回一个介于min和max之间的string类型的随机数
// - 通过Int64生成一个随机数当结果的字符串长度小于max的字符串长度的情况下使用0在开头补齐。
func NumberStringRepair(min int, max int) string {
result := strconv.Itoa(int(Int64(int64(min), int64(max))))
for i := len(result); i < len(strconv.Itoa(max)); i++ {
result = "0" + result
}
return result
}
// HostName 返回一个随机产生的hostname。
func HostName() string {
str := "0123456789abcdefghijklmnopqrstuvwxyz"
bytes := []byte(str)
var hostname []byte
r := rand.New(rand.NewSource(Int64(0, 999999)))
for i := 0; i < 12; i++ {
hostname = append(hostname, bytes[r.Intn(len(bytes))])
}
return string(hostname)
}