这个问题已经在这里有一个答案:
我有一个字符串值,然后我想使用初始化字符串作为种子的随机类?
是否有可能做到这一点,如果是的话怎么办?
该字符串不仅包括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
s可以产生相同的种子。根据您输入使用String
s,可以用比别人更高的概率会出现一些种子。
你可以做的ASCII值,或UTF-8符号的东西,他们都写的号码,加在一起。或者,如果你需要,你可以选择例如参见以下维基百科页面更先进的“散列函数”:http://en.wikipedia.org/wiki/List_of_hash_functions