我想为邀请代码生成编号。
我得到了一个数字,我需要根据这个数字生成一个字符串数字。
示例:对于3,我需要生成一个介于111和999之间的字符串对于4 1111到9999对于2 11至99等等。
最好的方法是什么?
我有一些想法,比如制作两个空字符串,根据x为第一个字符串填充1,根据x为第二个字符串填充9。
然后将它们转换为int,并在这两个数字之间做一个随机数,但我不认为这是最好的方法
package main
import (
"fmt"
"math/rand"
"strconv"
"time"
)
func randInt(min int, max int) int {
return min + rand.Intn(max-min)
}
func main() {
x := 3
first := ""
second := ""
i := 0
for i < x {
first = first + "1"
i = i + 1
}
i = 0
for i < x {
second = second + "9"
i = i + 1
}
rand.Seed(time.Now().UTC().UnixNano())
fmt.Println(first)
fmt.Println(second)
firstInt, _ := strconv.Atoi(first)
secondInt, _ := strconv.Atoi(second)
fmt.Println(randInt(firstInt, secondInt))
}
关于
您可以这样做:
package main
import (
"fmt"
"math/rand"
"time"
)
func init() {
rand.Seed(time.Now().UnixNano())
}
var numbers = []rune("0123456789")
func GenerateNumberString(length int) string {
b := make([]rune, length)
for i := range b {
b[i] = numbers[rand.Intn(len(numbers))]
}
return string(b)
}
func main() {
fmt.Println(GenerateNumberString(2))
fmt.Println(GenerateNumberString(3))
fmt.Println(GenerateNumberString(4))
}
在操场上试试吧。