2016-08-03 1 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 и считать появление каждого слова в каждом из предложений, Может кто-нибудь мне помочь?

EDIT Это то, что я пробовал, но это только говорит мне о появлении КАЖДОГО предложения. Мне нужно, чтобы он мог подсчитывать слова для каждого предложения.

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. Давайте сделаем список list2 of String [] 3, Разделите предложения на массив.
  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

Смежные вопросы