扫描数组以从中拾取随机字符串

时间:2018-03-28 21:59:48

标签: java

我有一个文本文件,我想随机选择一个字符串。有一些代码,但它无法正常工作

File file = new File("name.txt");
    Scanner scanner = new Scanner(file);
    Random random = new Random();
    while (scanner.hasNextLine()) {
        String line = scanner.nextLine();
        String[] s = {line};
        int select = random.nextInt(s.length); 
        System.out.println(s[select]);

如果我这样做,它打印整个文件,没有任何随机方法。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

好吧,随机选择一条线你有两个选择:

  • 以行数组的形式读取整个文件,然后使用随机函数选择一个;
  • 一次读取一行,并使用随机函数来确定此行是否为所选行。例如,使用random.nextInt(100)从0到99绘制一个数字,然后如果该数字小于10,则选择该行(10%偶然)。如果在拾取行之前文件用完了行,您可以恢复到解决方案#1(因为您现在已经读取了所有行),或者只是选择最后一行读取(它避免存储所有先前读取的行)。