当前位置: 首页 > 面试题库 >

从txt文件中检索随机单词,但没有输出,也没有编译器错误Java

汪甫
2023-03-14
问题内容

我无法更改程序的外壳,最终目标是从txt文件中的单词列表中选择一个随机单词。我已经浏览了很多次,一次又一次地检查了代码,尝试了许多不同的事情,但是每次我运行它时,它都可以毫无问题地进行编译,但是我从未得到任何输出。我什至尝试在私有函数中插入一些输出,但无济于事。谁能看到我的代码有什么问题或可以向我解释发生了什么?

import java.util.*;

    class PartOfSpeech
    {
      private String[] words;
      private Random random;
      private String filename;

      public PartOfSpeech(String filename)
      {
        this.filename = filename;
        this.read();
      }
      //this picks a random number and uses that number for the index of the array for which to return
      public String getRandomWord()
      {
        int index;
        index = random.nextInt(this.getCount());
        return words[index];
      }
      //this gets a count of how many lines of txt are in the file
      private int getCount()
      {
        Scanner fr = new Scanner(this.filename);
        int count = 0;
        while(fr.hasNextLine())
        {
         count++;
        }
       return count; 
      }
      //this creates a scanner and inserts each word from the txt file into an array
      private void read()
      {
        Scanner fr = new Scanner(this.filename);
        for(int i=0; i<this.getCount(); i++)
        {
         words[i] = fr.nextLine(); 
        }
      }

      public static void main(String[] args)
      {
        PartOfSpeech n = new PartOfSpeech("nouns.txt");
        System.out.print(n.getRandomWord());
      }
    }

问题答案:

构造函数扫描器(字符串源)实际上解析源字符串的内容,而不是将其视为文件名,您需要

new Scanner(new File(fileName))


 类似资料:
  • 我的任务是创建一个名为MyRectangle的类来表示矩形。 所需的数据字段是宽度、高度和颜色。宽度和高度使用双数据类型,颜色使用字符串。然后编写一个程序来测试MyRectangle类。在客户端程序中,创建两个MyRectangle对象。为两个对象中的每一个指定宽度和高度。将第一个对象指定为红色,将第二个对象指定为黄色。显示两个对象的所有属性,包括其面积。 我已经写了所有的东西,没有错误,但是无论

  • 这个程序创建了一个名为datafile.txt的文件,并且应该使用文本I/O将100个随机创建的整数写入文件中。但是,我的输出是“java.util.Random@30c221”100次。我如何得到100个随机数?提前谢谢。

  • 我被困了几个小时,无法释放它。 它给了我常规的通常我会在代码中的某个地方发现错误,或者只是在模块上运行inspector,它会检测错误,修复错误后,构建工作正常。 这一次,我和检查员都没有发现代码中的任何错误。 它发生在我试图整合Algolia之后。但是我试图恢复我所做的一切,错误仍然存在。我如何摆脱它? 编辑:我现在看到kotlin编译器给了我错误。它说有几个函数: 在我的设置中,kotlin被

  • 即时创建一个小电子邮件脚本与PHPMailer SMTP身份验证。我现在试着用错误的密码发送一封电子邮件——但它仍然会给成功带来“真实”的回报...有人知道吗?' 以下是我用来调用sendmail的函数: 这是我的PHPMailer函数 $smtp包含一个数组,其中包含所有SMTP信息、电子邮件地址、签名、Smtp服务器、端口、用户名、密码和SSL用法... 我敢肯定,我使用了错误的用户名和密码,

  • 我正在使用IntelliJ IDEA Ultimate 2019.2开发一个Java w/gradle项目。 当我尝试运行JUnit测试时,会触发自动构建,并发出以下消息: 自动构建已完成并出现错误 在“问题”选项卡中,我看到了100多个错误,当我单击它们进行调查时,我可以看到这些错误不是真正的错误,编辑器的任何地方都没有红色的波形,如果我查看特定的错误(如java:找不到符号),我会确认它们是无

  • 寻求帮助,将TypeScript编译器报告的类型错误输入到ESLint的输出中。库typescript eslint(https://github.com/typescript-eslint/typescript-eslint/blob/master/docs/getting-started/linting/TYPED_LINTING.md)让我觉得这应该是可能的。 文件结构 .eslintrc.