【问题标题】:Java print a word from text file when user enters word number当用户输入单词编号时,Java从文本文件中打印一个单词
【发布时间】:2014-04-05 17:57:52
【问题描述】:

我正在尝试编写一个读取文本文件的 Java 应用程序。假设我有一个文本文件beg.txt,其中包含文本:

我是初学者

当用户输入字号4时,程序必须打印单词'beginner'。

请问我如何在 Java 中做到这一点?

【问题讨论】:

  • 如果您解释了到目前为止所做的工作,这可能会有所帮助,这样人们就可以澄清您不确定的任何具体点并专注于那些,而不是重复您已经理解的事情. Matt Gemmell's article 可能会提供一些进一步的见解,让您深入了解思考您已经尝试过的事情以及您所做的和不知道的事情的好处。

标签: java string io


【解决方案1】:

嗯,基本流程如下:

  1. 加载文本文件
  2. 获取用户输入
  3. 使用来自用户的参数处理文本文件

第 1 步将取决于您使用的 Java 版本。如果是 Java 7,我会查看 nio2。 Java 6 有other options。或者你可以Guava 或Apache Commons。由于所需的处理很少,我会将这一步的输出存储为简单的String。

可以通过多种方式获取用户输入,但其中一种选择是to use a Scanner。

最后,可以通过使用String.split() 和simple regex 来处理文件,然后从结果数组中选择正确的元素。

【讨论】:

    【解决方案2】:
    File read=new File("D:\\Test.txt");
            BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(read),Charset.forName("UTF-8")));
            String news = reader.readLine();
            String[] records = news.split(" ");
    

    如果您的输入是 4 并获取记录[4]

    【讨论】:

      【解决方案3】:
         BufferedReader br = null;
         String[] str;
      
          try {
                 String sCurrentLine;
                 StringBuilder sb = new StringBuilder();
      
                 br = new BufferedReader(new FileReader("C:\\testing.txt"));
      
                 while ((sCurrentLine = br.readLine()) != null) {
                      sb.append(sCurrentLine);
                 }
                 str = sb.toString.split(" ");
      
          } catch (IOException e) {
              e.printStackTrace();
          }
      

      如果用户输入 4,那么您可以像这样使用数组 'str':

        String result = str[userEnteredValue - 1];
      

      注意:上述代码仅在文件包含空格分隔字符时有效。

      【讨论】:

        【解决方案4】:

        在问这个之前先试一试。

        只是为了您的帮助。尝试以下步骤,这不是唯一的方法。

        1. 阅读您的文件
        2. 使用空格将字符串拆分为字符串数组
        3. 打印数组[您的选择 - 1]

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-30
          • 1970-01-01
          • 1970-01-01
          • 2013-12-31
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多