Kotlin - 如何从 charRange '0..'z' 中获取 5 个(或选定的数字)随机字符

Kotlin - How to get 5(or selected numbers) random Char from charRange '0..'z'

您知道从范围 '0..'z' 中获取 5(或选定的数字)个随机字符吗?? 在“fun putCharTogehter”中,必须使用特定数字调用,并且必须使用 + 运算符将这些 Char 放入新字符串,然后 return 到具有完整强壮的“fun main”,其大小为 5 或已选择

在概念上我知道该怎么做,但是是的,只是在概念上。

希望输出示例:38dj(

fun main() {

    println(putCharTogehter(5))


}


fun putCharTogehter(stringSize: Int): String {
    var charRange = ('0'..'z').random()
    return charRange.toString()

}



您可以先创建字符数组,然后将其转换为字符串:

fun putCharTogehter(stringSize: Int): String {
    return CharArray(stringSize) {
        ('0'..'z').random()
    }.concatToString()
}

还有一个选择:

fun putCharTogether(stringSize: Int): String = buildString {
    repeat(stringSize) { 
        append(('0'..'z').random())
    }
}

另一种方式:

fun putCharTogether(stringSize: Int): String {
    return (1..stringSize).joinToString("") { ('0'..'z').random().toString() }
}

fun putCharTogether(stringSize: Int): String {
    return (1..stringSize).map { ('0'..'z').random() }.joinToString("")
}

另一种方法:

val charRange = ('0'..'z')
val randomChars = generateSequence { charRange.random() }
randomChars.take(5).joinToString("").run(::println)

您可以缩短它,但关键是您可以将 sequence 放在一起,这基本上是一个无休止的随机字符源,并且只是 take 需要它们。你可以很容易地把一个管道放在一起,比如说,drops 在给定情况下你需要排除的某些字符,或者你需要的任何其他处理。视情况而定,但它可能是一种很好的组合方式