【问题标题】:How would you convert a string to a 64 bit integer?如何将字符串转换为 64 位整数?
【发布时间】:2014-01-06 14:59:42
【问题描述】:

我正在制作一个应用程序,其中涉及生成世界的种子,而某些游戏允许您为该种子提供文本。我想知道如何将字符串“转换”为整数。

一种简单的方法是使用所有字符的 ASCII 值并将它们附加到一个字符串中,然后将其解析为一个整数,但这严重限制了字符串的大小。你怎么能用一个更大的字符串来做到这一点?

编辑:64 位不是 32

【问题讨论】:

标签: java seed


【解决方案1】:

我会打电话给String.hashcode()。标准的String.hashcode() 函数利用目标字符串中的所有字符并提供良好的分散性。

我唯一要质疑的是 32 位种子是否足够。 可能意味着您的世界生成器最多可以生成 232 个不同的世界。

【讨论】:

  • 不知道为什么我写了 32 位我的意思是 64 :P
【解决方案2】:

Random 的随机种子至少可以是 48 位,最好是 64 位。您可以像这样编写自己的哈希码。

public static long hashFor(String s) {
   long h = 0;
   for(int i = 0; i < s.length(); i++)
       h = h * 10191 + s.charAt(i);
   return h;
}

【讨论】:

    【解决方案3】:

    将字符串转换为整数的标准方法是使用 Integer.parseInt(String); 您将字符串传递给它,它会将字符串转换为 int。试试看,让我知道!

    【讨论】:

    • 如果你这样做Integer.parseInt("abcdefgh13uhfds")会发生什么?
    猜你喜欢
    • 2023-04-10
    • 2013-12-22
    • 2012-01-03
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 2010-10-13
    相关资源
    最近更新 更多