gpt4 book ai didi

java - 按频率对文本文件中的单词进行排序

转载 作者:行者123 更新时间:2023-12-02 09:04:24 25 4
gpt4 key购买 nike

我创建了一个程序,它计算文本文档中不同单词的数量,然后将它们打印到控制台。我想添加到程序中的是单词应该按最高频率排序。我确信这没什么要补充的,但我不知道该怎么做。

这是代码:

public static void main(String[] args) 抛出 FileNotFoundException、IOException {

Map<String, Integer> fileReaderMap = new HashMap<>();

try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
StringBuilder sb = new StringBuilder();
String line = br.readLine();

while (line != null) {
String[] words = line.split(" ");
for (int i = 0; i < words.length; i++) {
if (!fileReaderMap.containsKey(words[i])) {
fileReaderMap.put(words[i], 1);
} else {
int newValue = fileReaderMap.get(words[i]) + 1;
fileReaderMap.put(words[i], newValue);
}
}
sb.append(System.lineSeparator());
line = br.readLine();
}
}

最佳答案

TreeMap 根据键进行排序。您要做的就是根据值(value)进行排序。您可以创建一个,例如Frequency,其字段为String wordint freq。然后,您可以迭代 hashmap 并将这些键和值存储在此类的各自字段中。通过遍历,您可以创建频率的 ArrayList,并使用 Comparable/Comparator 您可以根据“freq”进行排序。

关于java - 按频率对文本文件中的单词进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59933987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com