java - 是否可以使用字符串作为随机实例的种子?

标签 java android

我有一个字符串值,我想使用该字符串作为种子来初始化一个随机类?

是否可以做到这一点,如果可以,如何做到?

该字符串不仅由 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/

相关文章:

android - 如何实现拖动选择功能,如 Google Photos 应用中所示

java - hashmap<String, String> 的属性

java - Hibernate - 如何持久化 HashMap

Java/Spring 库服务异步

Java:在 war 中访问属性文件

Java while 循环计时

java - 应用程序在使用带 ACTION_MEDIA_MOUNTED 的 sendBroadcast 时失去焦点

android - 在 Android 中滚动时折叠布局

android - 如何将 View 放在具有动态文本的 TextView 下方

VirtualBox 上的 Android x86 与 Google 的 Intel x86 图像?