Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Leider verstehe ich nicht, warum jetzt das Wort "ist" und das Wort "stärkste" mit 2 angegeben werden, obwohl die Wörter ja nur einmal im Text auftauchen.
Fällt dir auf, welche Worte eine 1 haben, und welche eine 2!? Tipp: zeile.toLowerCase()
Java:
int counter = 1;
if (zeile.toLowerCase().contains(s)){
[/Java]Und über diese Beiden Zeilen würde ich nochmal nachdenken.
1.) Warum startet der counter bei 1?
2.) Wozu brauchst du die Zeile, und dann auch noch toLowerCase()? Es gibt eine Methode Map.containsKey(Object).
Wenn Du also "der" und "Der" zusammenzählen wolltest, dann müsstest Du aber konsequenterweise auch den zweiten Vergleichswert 's' toLowerCase setzen, da halt "der" und "Der" nicht da Gleiche sind!
Du darfst also nicht Äpfel mit Birnen vergleichen !!
Dein im ersten Post enthaltener Algo scheint mir nicht geeignet dafür was du erreichen möchtest. In Zeile 31 fängst du beim counter immer mit "1" an. Wenn jetzt aber ein Wort z.B. zum dritten Mal vorkommt, wird wieder nur diese "1" um eins erhöht (also "2") und dann als Wert in die Map geschrieben.
Schau mal, ob du dieses Beispiel verstehst:
Java:
String[] datei = new String[]{
"Das ist eine Zeile Nummer eins. Und das",
"ist nicht die Zeile eins sondern die Zeile nummer 2"};
Map<String, Integer> zaehler = new HashMap<String, Integer>();
for(String zeile : datei)
{
String[] woerter = zeile.toLowerCase().split(" ");
for(String wort : woerter)
{
if(zaehler.containsKey(wort))
{
int alteAnzahl = zaehler.get(wort).intValue();
int neueAnzahl = ++alteAnzahl;
zaehler.put(wort, neueAnzahl);
}
else
{
zaehler.put(wort, 1);
}
}
}
for(String wort : zaehler.keySet())
{
System.out.println(wort + " : " + zaehler.get(wort));
}
Ausgabe
Code:
2 : 1
und : 1
das : 2
sondern : 1
nicht : 1
eins. : 1
die : 2
nummer : 2
ist : 2
eine : 1
eins : 1
zeile : 3
Es ist zwar noch eine "Unschönheit" drin, aber auch die ließe sich beseitigen. Auch könnte man das noch kompakter schreiben; aber ich finde so wie in diesem Beispiel wird der Ablauf am besten verdeutlicht.
Super! Danke noch für die Rückmeldung.
Daran habe ich gar nicht mehr gedacht gehabt. Erst als ich das von dir gelesen habe, habe ich gemerkt, dass das Zählen ja gar nicht so funktioniert wie es soll. Danke, habs nun verstanden denke ich