You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin如何生成5-15位长度的字符串密码

解决Kotlin密码生成器长度过长问题

原代码问题分析

  • 循环遍历xy列表的所有元素(共25个),每次循环打印2个字符,最终输出50位左右的字符串,这是密码过长的核心原因。
  • xy.size-3、x.size-4仅做数值计算,未修改集合长度,完全起不到控制输出次数的作用。
  • 原字符集('a'..'Z')包含[、\等非字母符号,若仅需字母密码,建议修正为纯大小写字母集合。

修正后的代码

忽略numbers和x变量,生成5-15位纯字母密码的实现:

class PasswordMaker {
    // 仅保留大小写字母作为密码字符集
    private val charPool = ('a'..'z') + ('A'..'Z')

    fun generatePassword() {
        // 生成5到15之间的随机长度
        val passwordLength = (5..15).random()
        val password = buildString {
            repeat(passwordLength) {
                append(charPool.random())
            }
        }
        println(password)
    }
}

// 使用示例
fun main() {
    val maker = PasswordMaker()
    maker.generatePassword()
}

关键修改说明

  • 用(5..15).random()直接生成目标范围内的随机密码长度,精准控制最终密码长度。
  • 使用buildString高效拼接字符,避免多次字符串拼接的性能损耗。
  • 循环次数由passwordLength决定,确保输出字符数正好符合要求。

内容的提问来源于stack exchange,提问作者Tom Levi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:45:41