我有一个作业,要求我从input.txt文件中取出单词并按频率对它们进行排序,然后将它们写入output.txt文件。
我遇到的问题是,一旦我从输入文件中找到每个单词的频率,我就不知道如何删除重复项以及如何防止它们被写入输出文件。
答案 0 :(得分:0)
以下是我将要使用的逻辑:
Map<StringVal,int> strCount = new HashMap<StringVal,int>();
通过这种逻辑,你可以实现你想要的人。
答案 1 :(得分:0)
将每个单词用作散列映射中的键,每次出现一个新键或增加整数。一旦完成循环通过每个....中的键....
答案 2 :(得分:0)
考虑到当你的内部'j'循环结束时,你的外部'i'循环可以继续检索下一次出现的相同的字。这就是为什么你会多次看到相同的单词输出,每次计数减少一次。
当'j'循环结束时,您可以通过将'i'设置为'j'来更近。或者,考虑消除'j'循环,并将令牌[i]与令牌[i-1]进行比较。
之后,您仍然不会按字频对输出进行排序。但是你不希望我们做你的作业。
我建议使用像Eclipse这样的Java IDE,并学习如何使用Java调试器。
答案 3 :(得分:-1)
首先过滤它们然后对它们进行排序。比如使用arraylist存储字符串并使用循环来检查字符串是否已经在arraylist中,并且在过滤之后你现在可以对它们进行排序。