使用 HashSet 存储文本文件并从中读取

gui*_*138 2 java string set

我看过很多关于 HasSets 的优秀资源,但没有任何资源可以帮助我解决这个特定问题。我正在学习关于泛型的算法类,并且此作业需要使用 Scanner (已完成)将 txt 文件读入系统并使用 hashSet,加载 txt 文件,以便我可以使用用户输入读取它并找到该词出现的次数。我有返回单词的方法,并且我已经完成了大部分哈希集和文件读取器代码。但我完全不知道如何将整个 txt 文件存储为一个 hashSet。我无法通过crime.add 让它工作,我尝试了其他几件事。我是否缺少一种更简单的方法来实现此方法?谢谢

\n\n

编辑:作业说明 - \n程序 1(70 分)\n用小说 \xe2\x80\x9c犯罪与惩罚\xe2\x80\x9d 中的文字加载 java.util.HashSet,作者:\nTheodore Dostoevsky(文本文件可用)在黑板上完成此作业)。提示用户\n输入单词并报告该单词是否出现在小说中。

\n\n

编辑:好的,我已经写好了所有这些并且它运行了,但是它没有找到 txt 文件中肯定存在的单词,所以我在将文件添加到 hashSet 中时出错了。有任何想法吗?我尝试过数组列表、不同的字符串实现,但我只是不知道该转向哪里。感谢您提供任何有用的信息。

\n\n
import java.awt.List;\nimport java.io.File;\nimport java.io.FileNotFoundException;\nimport java.util.HashSet;\nimport java.util.Scanner;\nimport java.util.Set;\n\npublic class CandPHashSet {\n    public static void main(String[] args) throws FileNotFoundException{\n        Scanner file = new Scanner(new File("crime_and_punishment.txt")).useDelimiter("[\xcb\x86a-zA-Z]+");\n        Scanner input = new Scanner(System.in);\n\n        Set<String> crime = new HashSet<String>();\n\n        while(file.hasNext()){\n            String line = file.nextLine();\n            //String[] words = line.split("[\xcb\x86a-zA-Z]+");\n            for (String word : line.split("[\xcb\x86a-zA-Z]+")){\n                crime.add(line);\n            }\n        }\n\n        String search;\n        System.out.println("Enter a word to search for: ");\n        search = input.next();\n\n        if(crime.contains(input)){\n            System.out.println("Yes");\n        }else{\n            System.out.println("No");\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

can*_*nge 5

您发布的要求相互冲突。

找出出现的次数

不等于

报告该词是否出现在小说中。

HashSet 对于第二个来说工作得很好。不是第一次。

阅读需求时要非常小心。多花 5 分钟阅读它们可以节省 5 个小时编写代码的时间。

要按照说明进行操作,您需要做的就是一次向哈希集中添加一个单词。一次读一个字已经有答案

每当我不确定使用什么容器时,我都会查看以下内容:

在此输入图像描述