2016-08-03 2 views
0

私はarrayListに格納されている各センテンスを通過し、文章のそれぞれにおける各単語の出現をカウントすることができるようにしたい例 -arraylistsに格納されている各文の各単語の出現をどのように数えますか?

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 [] のリスト2を作成し、配列に分割文を作成しましょう。
  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

このコードを自由に変更していただければ幸いです。 解決策としてマークした回答をupvoteするのは良い方法です。 – xenteros

+1

HashMapを置き換える(); LinkedHashMapを使用して();それらを順番に取得するには – JavaHopper

関連する問題