下面是我到目前为止的代码。我只是在几周前才开始编程,所以对这一切我还是陌生的,而且我不知道如何随机选择和打印单词。我从哪里开始?
public static String randomWord(String fileName)
throws FileNotFoundException {
int fileSize = countWords(fileName);
int N = (int) (fileSize*Math.random());
Scanner inFile = new Scanner(new File(fileName));
String word;
while (inFile.hasNext()) {
word = inFile.next();
}
inFile.close();
return word;
}
答案 0 :(得分:1)
嗨,看来您的变量N
是您要查找的随机词的编号位置(此外,与您的问题分开,但在Java中,所有变量名都以小写字母开头,{{ 3}})。有几种方法可以执行此操作,可以使用while循环将文件中的每个单词都放入一个数组中,这在以后要获取其他随机单词时非常有用,或者您可以跟踪循环中您所要编号的单词的数量,并在到达时打印第N个单词。因此:
int fileSize = countWords(fileName);
int N = (int) (fileSize*Math.random());
Scanner inFile = new Scanner(new File(fileName));
int count = 0;
while(inFile.hasNext() && count < N) {
inFile.next();
count ++;
}
String word = inFile.next();
System.out.println(word);
答案 1 :(得分:0)
您可以通过这种方式生成随机数
import java.util.Random;
Random rand = new Random();
int rand_int = rand.nextInt(1000);
System.out.println("Random Integers: "+rand_int);
使用random Integer选择随机单词作为阅读器中文件的索引。希望它能工作
答案 2 :(得分:0)
[注意]:此解决方案适合于实践目的,但在时空权衡方面非常昂贵,如果您要向月球发射火箭,请不要复制粘贴这段代码!
对于一个更简单的解决方案,您可以将这些单词一个一个地添加到ArrayList中,然后可以返回一个随机索引。
这是示例代码:
public static String randomWord(String fileName)
throws FileNotFoundException {
Scanner inFile = new Scanner(new File(fileName));
ArraList<String> arr = new ArraList<String>();
String word;
while (inFile.hasNext()) {
word = inFile.next();
arr.add(word);
}
inFile.close();
Random rand = new Random(); //instance of random class
int upperbound = arr.size();
//generate random values from 0-(N-1)
int int_random = rand.nextInt(upperbound);
return arr.get(int_random);
}
我还没有编译它,但是如果您在执行它时遇到任何错误,请告诉我。