我有一个任务要求我从 input.txt 文件中取出单词并按频率对它们进行排序,然后将它们写入 output.txt 文件。
我遇到的问题是,一旦我从输入文件中找到每个单词的频率,我就不知道如何删除重复项以及如何防止它们被写入输出文件。
我有一个任务要求我从 input.txt 文件中取出单词并按频率对它们进行排序,然后将它们写入 output.txt 文件。
我遇到的问题是,一旦我从输入文件中找到每个单词的频率,我就不知道如何删除重复项以及如何防止它们被写入输出文件。
这是我将使用的逻辑:
Map<StringVal,int> strCount = new HashMap<StringVal,int>();
有了这个逻辑,您就可以实现您正在寻找的东西。
将每个单词用作哈希图中的键,每次出现一个新键或递增整数。完成后,循环遍历 for each 中的键......
考虑一下当你的内部“j”循环结束时,你的外部“i”循环可能会继续遍历下一次出现的相同单词。这就是为什么您会多次看到相同的单词输出,每次计数减少一个。
当'j'循环结束时,你可以通过设置'i'相对于'j'来更接近。或者,考虑消除“j”循环,并将标记[i] 与标记[i-1] 进行比较。
之后,您仍然不会按词频对输出进行排序。但你不希望我们做你的功课。
我建议使用像 Eclipse 这样的 Java IDE,并学习如何使用 Java 调试器。
首先过滤它们,然后对它们进行排序。就像使用数组列表来存储字符串并使用循环来检查字符串是否已经在数组列表中,过滤后您现在可以对它们进行排序。