【发布时间】:2015-03-21 01:31:48
【问题描述】:
我看到了很多关于 HasSets 的优秀资源,但没有任何东西可以帮助我解决这个特殊问题。我正在学习关于泛型的算法类,这个作业需要使用 Scanner(已完成)和使用 hashSet 将 txt 文件读入系统,加载 txt 文件以便我可以通过用户输入读取它并找到单词的出现次数。我有返回单词的方法,并且我已经完成了大部分 hashSet 和文件阅读器代码。但是我完全不知道如何将整个 txt 文件存储为一个 hashSet。我无法通过做 crime.add 来让它工作,我尝试了其他几件事。我是否错过了实现此方法的更简单方法?谢谢
编辑:分配说明 - 节目一(70分) 用小说“罪与罚”中的词加载 java.util.HashSet,由 西奥多·陀思妥耶夫斯基(Blackboard 上提供此作业的文本文件)。提示用户 输入一个词并报告该词是否出现在小说中。
编辑:好的,我已经编写了所有这些并且它运行但它没有找到肯定在 txt 文件中的单词,所以我在某个地方出错了将文件添加到 hashSet 中。有任何想法吗?我尝试过使用数组列表、不同的字符串实现,但我只是不知道该去哪里。感谢您提供任何有用的信息。
import java.awt.List;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class CandPHashSet {
public static void main(String[] args) throws FileNotFoundException{
Scanner file = new Scanner(new File("crime_and_punishment.txt")).useDelimiter("[ˆa-zA-Z]+");
Scanner input = new Scanner(System.in);
Set<String> crime = new HashSet<String>();
while(file.hasNext()){
String line = file.nextLine();
//String[] words = line.split("[ˆa-zA-Z]+");
for (String word : line.split("[ˆa-zA-Z]+")){
crime.add(line);
}
}
String search;
System.out.println("Enter a word to search for: ");
search = input.next();
if(crime.contains(input)){
System.out.println("Yes");
}else{
System.out.println("No");
}
}
}
【问题讨论】:
-
我已经做到了这一点,但看起来我仍然没有正确添加它......