2016-08-03 108 views
0

我有一個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

回答

2
  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

相關問題