如何计算存储在数组列表中的每个句子中每个单词的出现次数?

问题描述:

我有一个arraylist持有的示例 -如何计算存储在数组列表中的每个句子中每个单词的出现次数?

list.add("I like to play pool") 

list.add("How far can you run") 

list.add("Do you like fanta because I like fanta") 

我希望能够去通过存储在arrayList每个句子并计算每个单词的出现在每个句子的文档的每一行,谁能帮我?

编辑 这是我试过的,但它只告诉我每句话的发生。我需要它能够计算每个句子的单词。

Set<String> unique = new HashSet<String>(list); 
     for (String key : unique) { 
      System.out.println(key + ": " + Collections.frequency(list, key)); 
+0

我们帮助那些谁帮助自己。你甚至没有尝试过。 – Kayaman

+0

你有没有尝试过自己呢? – Zircon

+0

如果您有任何代码,请尝试在此发布。 – Arun

  1. 让我们打电话给你ArrayList<String> list
  2. 让我们创建一个String [] 3的列表list2,将句子拆分为数组。
  3. 计数出现

代码:

ArrayList<String> list = new ArrayList<>(); 
//add sentences here 
list.add("My first sentence sentence"); 
list.add("My second sentence1 sentence1"); 

ArrayList<String[]> list2 = new ArrayList<>(); 
for (String s : list) { list2.add(s.split(" "));}; 
for (String[] s : list2) { 
    Map<String, Integer> wordCounts = new HashMap<String, Integer>(); 

    for (String word : s) { 
     Integer count = wordCounts.get(word); 
     if (count == null) { 
      count = 0; 
     } 
     wordCounts.put(word, count + 1); 
    } 
    for (String key : wordCounts.keySet()) { 
     System.out.println(key + ": " + wordCounts.get(key).toString()); 
} 
+0

感谢您的帮助!似乎是点,只有当它打印出来的句子不再是为了顺序,但它给了我我需要的结果! – Newbie2015Giant

+0

随意修改此代码我给你,所以它打印的东西,你会很感激。 这是一个很好的方式来提升您标记为解决方案的答案。 – xenteros

+1

尝试替换HashMap ();与LinkedHashMap ();让他们按顺序 – JavaHopper