我希望为Android应用程序生成一个随机的字母数字值,以附加到字符串中。我们使用Kotlins kotlin.collections.arandom 添加了10位随机数字
我们在相当小的数据集(<10(中看到了这种随机性的间歇性冲突,而且它们似乎只发生在应用程序会话之间(例如,你可以在不重启应用程序的情况下继续生成它们(。
我们附加随机性的扩展方法:
private val values = ('A'..'Z') + ('0'..'9')
internal fun String.appendRandomCharacters(charactersToAdd: Int): String {
val randomness = (1..charactersToAdd).map { values.random() }.joinToString("")
return this + randomness
}
在测试中运行它,我可以生成一百万个随机字符串,而不会出现问题或冲突。
然而,我可以看到,如果应用程序被终止并重新运行,相同的随机字符串会以高频率生成。
我在谷歌上做了一些搜索,但没有取得多大成功,所以我希望StackOverflow能够提供一些线索。
我也遇到了同样的问题,但神奇的是,它与java.util.Random类和Kotlin一起工作,我不断获得相同的重复"随机"值。