从字符串数组文本文件中获取随机单词

时间:2014-08-27 14:37:18

标签: java arrays class random

 package hangman;

 import java.util.Random;

 public class Dictionary {

     int NUMBER_OF_WORDS = 81452;
     public static String FILE_NAME = "dictionaryCleaned.txt";
     private String[] dictionary = new String[NUMBER_OF_WORDS];

     public string getRandomWord() {
          Random rand = new Random();

          return randWord;
     }

 }

我正在尝试从包含文本文件“dictionaryCleaned.txt”的数组中随机生成一个单词,以便我可以在单独的类中将随机单词返回到我的main方法。我觉得数组可能有问题,因为它似乎没有将文本文件加载到空数组空间中。我需要从“词典”中回复一个词,但这是在逃避我。

谢谢

5 个答案:

答案 0 :(得分:2)

假设您遗漏了文件阅读部分,

我会在这里将Random()作为实例变量保存在这里。

 private final Random random = new Random();

 public String getRandomWord() {
      return dictionary[random.nextInt(dictionary.length)];
 }

答案 1 :(得分:0)

从词典中返回一个随机词很容易:

public String getRandomWord() {
     final Random rand = new Random();

     return dictionary[rand.nextInt(dictionary.length)];
}

但是你仍然需要编写代码来加载你的文字。

答案 2 :(得分:0)

考虑到词典引用已从字典文件中加载所有数据,然后加载随机字符串,您可以使用

String randomValue = dictionary[new Random().nextInt(dictionary.length)];

答案 3 :(得分:0)

您的getRandomWord方法应为:

public String getRandomWord() {
   Random rand = new Random();
   int index = rand.nextInt(dictionary.length);
   String randWord= dictionary[index];

   return randWord;
 }

答案 4 :(得分:0)

首先,您必须将单词加载到数组中。然后只有你可以从你的单词数组中得到一个随机单词。

所以你的代码应该是这样的 包刽子手;

import java.util.Random;

public class Dictionary {
     int NUMBER_OF_WORDS = 81452;
     public static String FILE_NAME = "dictionaryCleaned.txt";
     private String[] dictionary = new String[NUMBER_OF_WORDS];

     public void loadWordList(String fileName){
          // write your logic to read the file and load them into the dictionary array
     }

     public String getRandomWord() {
          Random rand = new Random();
          return dictionary[rand.nextInt(NUMBER_OF_WORDS)];
     }
 }