Hey,
ich hab ein kleines Problem. Ich möchte in einem Treeset einen Text speichern, in dem alle Wörte sotiert und mit der Häufigkeit (das Treeset ja die doppelten Wörter nicht mit aufnimmt) des einzelnen Wortes gespeichert werden.
Deswegen hab ich eine Klasse geschrieben die eine String Variable für das Wort und eine Integer Variable für die Häufigkeit des Wortes.
Jetzt habe ich das Problem das nur das Wort im Treeset gespeichert wird. Nicht die Häufigkeit. Diese bleibt immer auf 1.
Zur Zeit hab ich es auch erstmal soweit das die Anzahl auf 2 gesetzt werden soll wenn ein Wort öfter vorkommt.
Hier die Klasse Wort:
Und hier die Klasse textstat:
Und in der Main steht folgendes:
Ich hoffe ihr könnt mir helfen. Ich habe schon das halbe Internet durchforstet und Suche jetzt schon seit 2 Tagen.
Bitte helft mir
ich hab ein kleines Problem. Ich möchte in einem Treeset einen Text speichern, in dem alle Wörte sotiert und mit der Häufigkeit (das Treeset ja die doppelten Wörter nicht mit aufnimmt) des einzelnen Wortes gespeichert werden.
Deswegen hab ich eine Klasse geschrieben die eine String Variable für das Wort und eine Integer Variable für die Häufigkeit des Wortes.
Jetzt habe ich das Problem das nur das Wort im Treeset gespeichert wird. Nicht die Häufigkeit. Diese bleibt immer auf 1.
Zur Zeit hab ich es auch erstmal soweit das die Anzahl auf 2 gesetzt werden soll wenn ein Wort öfter vorkommt.
Hier die Klasse Wort:
Code:
package textstatistik;
public class Wort implements Comparable<Wort>{
String wortwert;
int häufigkeit;
public Wort(String ww) {
wortwert = ww;
häufigkeit = 1;
}
public boolean equals(Object einWort) {
Wort w = (Wort) einWort;
return getwortwert().equals(w.getwortwert());
}
public int hashCode() {
return wortwert.hashCode();
}
public int compareTo(Wort w) {
return wortwert.compareTo(w.getwortwert());
}
public String getwortwert() {
return wortwert;
}
public int gethäufigkeit() {
return häufigkeit;
}
public void sethäufigkeit(int h) {
häufigkeit = häufigkeit + h;
}
public String toString() {
return wortwert + " : " + häufigkeit;
}
}
Und hier die Klasse textstat:
Code:
package textstatistik;
import java.io.*;
import java.util.*;
public class txtstat {
private TreeSet<Wort> textset = new TreeSet<Wort>();
public txtstat() {
}
private String lesepfad() {
String pfad ="";
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
pfad = in.readLine();
}
catch (Exception e) {
}
finally {
return pfad;
}
}
public String öffnen() {
String text ="";
try {
BufferedReader datei = new BufferedReader(new FileReader(lesepfad()));
String zeile = null;
String tmp = null;
int i = 0;
while((zeile=datei.readLine())!=null) {
StringTokenizer str = new StringTokenizer(zeile);
while (str.hasMoreTokens()) {
tmp = str.nextToken();
Wort neueswort = new Wort(tmp.replaceAll("[_[^\\w\\däüöÄÜÖ\\+\\- ]]", ""));
//neueswort.equals(textset);
if(textset.contains(neueswort)==true) {
neueswort.sethäufigkeit(1);
i++;
}
System.out.println(neueswort.getwortwert() + " " + neueswort.gethäufigkeit());
textset.add(neueswort);
}
}
System.out.println(i);
datei.close();
}
catch (Exception e) {
System.out.println(e.getMessage());
}
finally {
return text;
}
}
public void ausgeben() {
System.out.println(textset);
System.out.println(textset.size());
}
}
Und in der Main steht folgendes:
Code:
package textstatistik;
public class Main {
public Main() {
}
public static void main(String[] args) {
txtstat text1 = new txtstat();
text1.öffnen();
text1.ausgeben();
}
}
Ich hoffe ihr könnt mir helfen. Ich habe schon das halbe Internet durchforstet und Suche jetzt schon seit 2 Tagen.
Bitte helft mir