Java 如何从txt文件中选择随机单词?
我有一个方法,需要从txt文件中选择一个随机单词,但它只在某些时候起作用 文件内容如下:Java 如何从txt文件中选择随机单词?,java,file,Java,File,我有一个方法,需要从txt文件中选择一个随机单词,但它只在某些时候起作用 文件内容如下: Broccoli Tomato Kiwi Kale Tomatillo 我的代码: import java.util.Random; 导入java.util.Scanner; 导入java.io.FileInputStream; 导入java.io.FileNotFoundException; 公共字符串getRandomItem(){ Scanner fileIn=null; 字符串temp=“”; i
Broccoli
Tomato
Kiwi
Kale
Tomatillo
我的代码:
import java.util.Random;
导入java.util.Scanner;
导入java.io.FileInputStream;
导入java.io.FileNotFoundException;
公共字符串getRandomItem(){
Scanner fileIn=null;
字符串temp=“”;
int r=randomGenerator.nextInt(5)+1;
字节i=0;
试一试{
fileIn=newscanner(newfileinputstream(“bundles.txt”);
}catch(filenotfounde异常){
System.out.println(“未找到文件”);
系统出口(0);
}
而(i我会把所有的行读一遍,然后从中随机得到一个单词,比如
private static List<String> lines = null;
static {
try {
lines = Files.readAllLines(new File("bundles.txt").toPath());
} catch (IOException e) {
e.printStackTrace();
}
}
private Random rand = new Random();
public String getRandomItem() {
return lines.get(rand.nextInt(lines.size()));
}
私有静态列表行=null;
静止的{
试一试{
lines=Files.readAllLines(新文件(“bundles.txt”).toPath();
}捕获(IOE异常){
e、 printStackTrace();
}
}
private Random rand=new Random();
公共字符串getRandomItem(){
返回lines.get(rand.nextInt(lines.size());
}
在调试器中运行此程序,自己看看为什么它不总是工作。如何知道它只是在某些时间是随机的?至少运行1000次,并分析结果以查看实际的随机性。我不是说它不总是随机的,我是说我收到一条错误消息:线程“main”中出现异常java.util.NoSuchElementException:找不到行您正在生成一个介于1和5之间的随机数,但您的索引“i”从0到5。我认为您遇到了一个“一个接一个”的错误。如果随机数为5,您将从文件中读取6行,从而导致错误。更改i