2016-08-03 18 views
0

Ich habe eine arraylist, die in der arrayList und zählen das Auftreten eines jeden Wortes in jedem der Sätze gespeichert durch jeden Satz zu gehen, für Beispiel-Wie zähle ich die Vorkommen jedes Wortes in jedem der in Arraylists gespeicherten Sätze?

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

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

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

Ich möchte in der Lage, jede Zeile eines Dokuments hält, Kann mir jemand helfen?

EDIT Dies ist, was ich versuchte, aber es sagt mir nur das Auftreten von Each-Satz. Ich brauche es, um die Wörter für jeden Satz zählen zu können.

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

Wir helfen denen, die sich selbst helfen. Du hast es nicht einmal versucht. – Kayaman

+0

Haben Sie schon selbst etwas probiert? – Zircon

+0

Wenn Sie Code haben, den Sie ausprobiert haben, schreiben Sie bitte hier. – Arun

Antwort

2
  1. Hier können Sie Ihre ArrayList<String> list nennen.
  2. Lassen Sie uns eine Liste list2 von String [] 3, Split Sentences zum Array machen.
  3. Count Vorkommen

Der Code:

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

Vielen Dank für diese Hilfe! Scheint genau zu sein, nur wenn es den Satz ausdruckt, ist nicht mehr in Ordnung, aber es gibt mir die Ergebnisse, die ich brauchte! – Newbie2015Giant

+0

Fühlen Sie sich frei, diesen Code zu ändern, den ich Ihnen gab, damit er Sachen auf eine Weise druckt, die Sie schätzen würden. Es ist eine gute Art, die Antwort, die Sie als Lösung markiert haben, zu verbessern. – xenteros

+1

versuchen, HashMap () zu ersetzen; mit LinkedHashMap (); um sie in Ordnung zu bringen – JavaHopper