当前位置: 首页 > 知识库问答 >
问题:

将文本文件中的唯一单词添加到ArrayList中的程序

孟子墨
2023-03-14

我正在编写一个程序,它读取包含多行文本的文本文件,并将唯一的单词添加到ArrayList中。然后,我需要对这个ArrayList进行排序并打印它。我的意见是:

你好,我的
我的名字是
java。

下面是我的代码

import java.util.*;
import java.io.*;
public class Indexer
{
   public static void main(String[] args) throws FileNotFoundException
   {
      Scanner fileScanner = new Scanner(new File("File.txt"));
      fileScanner.useDelimiter("[^A-Za-z0-9]");
      ArrayList<String> words = new ArrayList<String>();
      while (fileScanner.hasNext())
      { 
         if (!words.contains(fileScanner.next()) && (fileScanner.hasNext()))
         {
           words.add(fileScanner.next());
         }
      }
      Collections.sort(words);
      System.out.println("There are " +  words.size() + " unique word(s)");
      System.out.println("These words are:");
      for (Iterator<String> it = words.iterator(); it.hasNext();) 
      {
          String f = it.next();
          System.out.println(f);
      }
      fileScanner.close();
   }
}

我做错了什么?

共有1个答案

羊舌高爽
2023-03-14

您重复使用next(),超出了应该使用的范围。在变量中收集next()调用的值,然后使用它。例如。

while (fileScanner.hasNext())
    {
        String nextWord = fileScanner.next();
        if (!words.contains(nextWord))
        {
            words.add(nextWord);
        }
    }
 类似资料:
  • 问题内容: 我正在编写一个游戏,在程序中我需要根据文件添加新的敌人。现在,我的问题是,尝试读取此文件时,我遇到了一个无限的while循环。我是编程的新手,所以我不确定如何解决此问题。这是问题代码。文件中条目外观的一个示例是:“ Troll,6,4,1”。谢谢您的帮助。 问题答案: 由于您的声明之后,导致了无限循环。我也相信您的代码存在与逻辑相关的问题。我们可以读取文件的每一行,然后使用以下代码根据

  • 问题内容: 在我的在线计算机科学课上,我必须编写一个程序来确定太阳系中每个行星的表面重力。除了一个方面,我几乎已经掌握了它的所有方面。我需要使用单独的方法将表面重力写入文件。这是我目前的方法: 我的问题是,当我将其写入文件时,它将覆盖先前的值。我如何获得它包括所有的价值。如果有帮助,这是我的全部代码: 问题答案: 这样做是为了创建带有追加模式的作品:

  • 但是,后来当我试图将整数添加到正确的“内部”数组列表中时,我无法将整数添加到ArrayList类型的位置中。我还得到一个索引超出界限的错误。 解决这个问题的方法是将整数强制转换为ArrayList类型,但这意味着我将在内部数组列表中添加一个数组列表,这不是我想要的。我想在正确的“内部”ArrayList中添加一个int。

  • 问题内容: 我想将先前从其他文件(已经完成)中提取的一系列文件添加到jar中。这些文件将覆盖JAR中的文件。最有效的方法是什么?我需要它快。谢谢! 问题答案: 请记住,JAR文件是ZIP文件。 只需使用一些ZIP库。

  • 我刚开始在我的JAVAFX项目中使用RichTextFX。但是我发现我无法将文本添加到InlineCssTextArea。在项目中,我使用MVC设计并从Scene Builder生成UI代码。InlineCssTextArea已成功创建,但我无法弄清楚为什么我不能添加文本内容。程序成功编译,没有错误。但是InlineCssTextArea默认为空。 我已经在Github上阅读了RichTextFX

  • 问题内容: 假设您有一个像这样的文本文件:http : //www.gutenberg.org/files/17921/17921-8.txt 有没有人有一个好的算法或开放源代码从文本文件中提取单词?如何获得所有单词,同时避免使用特殊字符,并保留诸如“ it’s”之类的内容… 我在用Java工作。谢谢 问题答案: 这听起来像是正则表达式的正确工作。如果您不知道如何开始,以下是一些Java代码,可以