我有一个字符串值,我想使用该字符串作为种子来初始化一个随机类?
是否可以做到这一点,如果可以,如何做到?
该字符串不仅由 ASCII 组成。我可以有任何 utf-8 符号。
最佳答案
您可以使用String.hashCode
的实现,区别是使用long
而不是int
static long stringToSeed(String s) {
if (s == null) {
return 0;
}
long hash = 0;
for (char c : s.toCharArray()) {
hash = 31L*hash + c;
}
return hash;
}
这样你就得到了一个long
,但是当然有不同的String
可以产生相同的种子。根据您用作输入的字符串
,某些种子出现的概率可能高于其他种子。
关于java - 是否可以使用字符串作为随机实例的种子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23981678/