侧边栏壁纸
博主头像
Stars-One的杂货小窝博主等级

所有的创作都是有价值的

  • 累计撰写 252 篇文章
  • 累计创建 46 个标签
  • 累计收到 26 条评论

目 录CONTENT

文章目录

Kotlin 生成随机激活码

Stars-one
2021-09-12 / 0 评论 / 0 点赞 / 550 阅读 / 2182 字

最近整个邮箱注册功能,需要生成激活码,封装了个生成随机激活码的方法

原理是利用ACSII码转为字符串,如a对应的ASCII是97,我们需要实现将97转为a即可

我们将所有对应的数字,大写字母,小写字母的ASCII码按照顺序存在一个ArrayList中

之后以此List的最大长度作为随机数的上限,每次获取随机的下标,获取list中的数据,将其转为String,之后拼凑起来即可获得String

代码如下

//num是生成的位数
fun generateCode(num: Int): String {
    //numList建议放在类中,不然每次调用方法每次都会创建List,会有资源浪费
    val numList = arrayListOf<Int>().apply {
        //数字(0-9)
        for (i in 30..39) {
            add(i)
        }
        //大写字母
        for (i in 65..90) {
            add(i)
        }
        //小写字母
        for (i in 97..122) {
            add(i)
        }
    }

    val size = numList.size
    val sb = StringBuffer()
    //循环六次(根据需要调整生成的位数)
    for (i in 0..5) {
        val random = Random.nextInt(size)
        val item = numList[random]
        //下标0-9对应的也是数字0-9
        val str = if (random in 0..9) {
            random.toString()
        } else {
            //转为字符串
            String(byteArrayOf(item.toByte()))
        }
        sb.append(str)
    }
    return sb.toString()
}
0

评论区