对于我的类(class)作业(二叉搜索树和哈希表),我想制作一个java程序来扫描文本文件并根据最常见的单词对单词进行排序。像最流行的标签之类的东西。
示例: 1. 扫描文件。 2.列出出现多次的单词
总字数
香蕉10个
周日 7
海3
问题 1. 如何扫描文本文件?
问题2.如何检查文本文件中的重复项并编号?
问题3.如何打印出像我的示例中按顺序出现超过1次的单词?
我的编程能力不强。
最佳答案
由于这是类(class)作业,我不会向您提供完整的详细信息,但我会尽力为您指出一个可能的方向:
- Google 如何从文本文件中读取单词(这是一个非常常见的问题,您应该能够找到大量示例)
- 使用例如 hashmap(string 到 int)来计算单词数:如果单词尚未在 hashmap 中,则将其重数添加为 1;如果它在那里,则增加计数(您可能需要对单词进行一些预处理,例如,如果您想忽略大写字母)
- 从 HashMap 中过滤重数大于 1 的单词
- 根据字数对过滤后的字词列表进行排序
一些非常高级的实现(有许多开放式结局:))
List<String> words = readWordsFromFile();
Map<String, Integer> wordCounts = new HashMap<>();
for(String word : words) {
String processedWord = preprocess(word);
int count = 1;
if (wordCounts.containsKey(processedWord)) {
count = wordCounts.get(processedWord)+1;
}
wordCounts.put(processedWord, count);
}
removeSingleOccurences(wordCounts);
List<String> sortedWords = sortWords(wordCounts);
关于Java二叉搜索树和哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16983200/