【问题标题】:Pick a random element from a string array? [duplicate]从字符串数组中选择一个随机元素? [复制]
【发布时间】:2014-08-05 23:57:50
【问题描述】:

我有这段代码,它(我希望)从一个包含 66 个单词的文本文件中读取并将这些单词放入一个数组中。

BufferedReader buff = null;
String wordlist=new String[66];
int i=0;

try {
    buff = new BufferedReader(new FileReader("C:\\easy.txt"));
    wordlist[i] = buff.readLine();
    while(wordlist[i] != null&i<66){
        wordlist[i]=buff.readLine();
        i++;
    }
}

我想从数组中随机选择一个单词。但是,我自己尝试一些事情并查看其他问题似乎不起作用。任何帮助将不胜感激

【问题讨论】:

标签: java arrays


【解决方案1】:

恕我直言,最简单的代码是:

String word = wordlist[new Random().nextInt(wordlist.length)];

【讨论】:

    【解决方案2】:

    这应该可行:

    String randomString = wordlist[(int)(Math.random() * wordlist.length)];
    

    【讨论】:

    • 自从发布此答案后,我了解到 Math.random() 与 Random.nextInt() 之间的区别。 stackoverflow.com/questions/738629/…
    • 我不确定这是否有效。我已经将它设置为显示它在标签上选择的单词,并且它只显示“null”。我将所有代码都放在同一个按钮上,所以这可能与它有关。有什么建议吗?
    • 这段代码绝对有效。如果您在按钮的动作侦听器中使用您在按钮外部声明的变量,您可能会遇到问题,但如果没有看到您的代码,我无法确定。
    【解决方案3】:

    生成一个介于 0 到 65 之间的随机数,然后将该数字用作您选择的 String 的索引。

    【讨论】:

      【解决方案4】:

      您可以创建一个随机数生成器(Random 的一个实例)。

      然后调用 nextInt(wordList.length) 方法来获取字符串数组的随机索引。

      例如:

      随机随机 = 新随机(); int index = random.nextInt(wordList.length);

      然后:wordList[index] 得到随机选择的字符串。

      【讨论】:

        【解决方案5】:

        一种解决方案是通过执行从单词列表数组中选择一个随机数
        String = randomWord = wordlist[(int)Math.random() * wordlist.length]

        String randomWord = wordlist[(int)Math.random() * 66]

        【讨论】:

          猜你喜欢
          • 2011-11-13
          • 1970-01-01
          • 1970-01-01
          • 2014-07-23
          • 1970-01-01
          • 2020-10-04
          相关资源
          最近更新 更多