java - 从用户输入中找到最常见的词

标签 java arrays sorting hashmap windowbuilder

我是 Java 的新手,我创建了一个软件应用程序,允许用户在字段中输入文本,程序会遍历所有文本并识别最常用的词是什么。目前,我的代码如下所示:

JButton btnMostFrequentWord = new JButton("Most Frequent Word");
btnMostFrequentWord.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent e) {
    String text = textArea.getText();
    String[] words = text.split("\\s+");
    HashMap<String, Integer> occurrences = new HashMap<String, Integer>();
    for (String word : words) {
      int value = 0;
      if  (occurrences.containsKey(word)) {
        value = occurrences.get(word);
      }
      occurrences.put(word, value + 1);
    }

    JOptionPane.showMessageDialog(null, "Most Frequent Word: " + occurrences.values());
  }
}

这只是打印单词的值,但我希望它能告诉我排名第一的最常见单词是什么。非常感谢任何帮助。

最佳答案

就在您的 for 循环之后,您可以按值对映射进行排序,然后按值反转排序的条目并选择第一个。

for (String word: words) {
    int value = 0;
    if  (occurrences.containsKey(word)) {
        value = occurrences.get(word);
    }
    occurrences.put(word, value + 1);
}

Map.Entry<String,Integer> tempResult = occurrences.entrySet().stream()
                .sorted(Map.Entry.<String, Integer>comparingByValue().reversed())
                .findFirst().get();
JOptionPane.showMessageDialog(null, "Most Frequent Word: " + tempResult.getKey());

关于java - 从用户输入中找到最常见的词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43967515/

相关文章:

java - 将文件用于共享内存 IPC

javascript - 即使reactjs收到了数据,为什么我的笔记没有显示/更新?

java - 如何存储多个字节数组

python - Quicksort - Python 中的 CLRS 实现

javascript - 在 KnockoutJs 中对可观察数组进行排序时 UI 未更新

Java 匹配字符串格式

java - onBackPressed 并调用刷新函数 android

java - AssertJ:如何在没有条件的情况下对任何可能的值进行比较

arrays - 如何在可选中声明 [Int]

java - 更改 Spring JPA 的分页方式