【问题标题】:Convert a line of text into an int value将一行文本转换为 int 值
【发布时间】:2012-06-09 14:08:40
【问题描述】:

我正在制作一个需要一个值来播种随机数生成器的游戏。我想拥有它,以便您可以输入文本并将其转换为 long 值以播种 Random()

程序在命令行中运行,我假设我需要使用我可以使用的Scanner

我想知道的是如何将Scanner 得到的值变成long 值。

【问题讨论】:

  • 您可能想使用 java.util.Scanner 类来读取用户的输入。
  • 最简单的解决方案是将所有字符的 ascii 值加在一起并以此作为种子。
  • 您是在问如何将字符串转换为长字符串(简单的 google 搜索),或者如何从用户那里获取输入(简单的 google 搜索,但您需要指定是否是从命令行或 GUI 应用程序)。
  • 大家对Minecraft并不熟悉。因此,请更具体地说明您要做什么。用户将输入任何文本,并且您想将该文本映射到整数值?或者用户只需在文本字段或控制台中输入整数,而您不知道如何将该字符串转换/读取为整数?
  • 关于 Minecraft 的事情是万一有人知道它,它会提供更多的清晰度。这是一个补充,而不是一个要点。

标签: java string int


【解决方案1】:

不确定您是否只想从任何文本中生成种子。这是一个建议:

    String str = "Sample string";
    long seed = 0;
    for (int i = 0; i < str.length(); i++) {
        char ch = str.charAt(i);               
        seed = seed + (long)ch;
    }

    Random ran = new Random(seed);

【讨论】:

    【解决方案2】:

    您可以使用String.hashCode() 方法。这就是 Java 版本的 Minecraft 所做的。

    编辑:这实际上返回 int 而不是 long,但我会保留它以防它对任何人有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-15
      • 1970-01-01
      • 2013-08-19
      • 2021-11-04
      • 1970-01-01
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      相关资源
      最近更新 更多