zoukankan      html  css  js  c++  java
  • golang生成指定位数的字符串(数字、大小写字母)

    package main
     
    import(
        "fmt"
        "time"
        "math/rand"
    )
     
    const (
        KC_RAND_KIND_NUM   = 0  // 纯数字
        KC_RAND_KIND_LOWER = 1  // 小写字母
        KC_RAND_KIND_UPPER = 2  // 大写字母
        KC_RAND_KIND_ALL   = 3  // 数字、大小写字母
    )
     
    // 随机字符串
    func Krand(size int, kind int) []byte {
        ikind, kinds, result := kind, [][]int{[]int{10, 48}, []int{26, 97}, []int{26, 65}}, make([]byte, size)
        is_all := kind > 2 || kind < 0
        rand.Seed(time.Now().UnixNano())
        for i :=0; i < size; i++ {
            if is_all { // random ikind
                ikind = rand.Intn(3)
            }
            scope, base := kinds[ikind][0], kinds[ikind][1]
            result[i] = uint8(base+rand.Intn(scope))
        }
        return result
    }
     
    func main(){
        fmt.Println("num:   " + string(Krand(16, KC_RAND_KIND_NUM)))
        fmt.Println("lower: " + string(Krand(16, KC_RAND_KIND_LOWER)))
        fmt.Println("upper: " + string(Krand(16, KC_RAND_KIND_UPPER)))
        fmt.Println("all:   " + string(Krand(16, KC_RAND_KIND_ALL)))
    }

    运行效果:
    num: 1724754808278598
    lower: rvuwvrmamuafuxpg
    upper: RVUWVRMAMUAFUXPG
    all: VWrA875Gg80U07GP
     

     原文引自:https://www.oschina.net/code/snippet_170216_50650

  • 相关阅读:
    Git远程和分支管理
    Git基本使用教程
    linux基础知识总结
    正则表达式-概要
    java注释规范
    JavaScript对象(Object)
    centos7安装docker
    springboot项目问题记录one
    tomcat不需要重启热部署xml文件
    java调用新浪接口根据Ip查询所属地区
  • 原文地址:https://www.cnblogs.com/husbandmen/p/9641414.html
Copyright © 2011-2022 走看看