Hi,
ich hab ein kleines Problem mit dem Vergleichen von Strings!
ICh möchte gern aus einem Text, den ich per Datei einlese die Häufigkeit eines Wortes ausgeben, das ich über die Tatur eingebe!
Eingabe und ausgabe funktioniert schon ganz gut, einziges Problem bis jetzt findet er nur die wörter, die seperat stehen, am anfang und am ende! und die groß und kleinschreibung wird beachtet, leider!
Wie bekomm ich es am besten hin, dass er auch wörter findet die in einem wort "gefangen" sind?
also ich hab z.B. den Text:
"user userlist neuuser neuuserlist"
wenn ich dann nach "user" suche gibt er an es sei nur 3 mal vorhanden!
Danke für ein paar tipps!
ich hab ein kleines Problem mit dem Vergleichen von Strings!
ICh möchte gern aus einem Text, den ich per Datei einlese die Häufigkeit eines Wortes ausgeben, das ich über die Tatur eingebe!
Eingabe und ausgabe funktioniert schon ganz gut, einziges Problem bis jetzt findet er nur die wörter, die seperat stehen, am anfang und am ende! und die groß und kleinschreibung wird beachtet, leider!
Wie bekomm ich es am besten hin, dass er auch wörter findet die in einem wort "gefangen" sind?
also ich hab z.B. den Text:
"user userlist neuuser neuuserlist"
wenn ich dann nach "user" suche gibt er an es sei nur 3 mal vorhanden!
Code:
import java.io.*;
import java.util.*;
public class probe extends Environment {
public static void main(String[] args) {
probe pn = new probe();
pn.mainProgram(args);
}
void mainProgram(String[] args) {
int anzahl=0;
int position = 0;
String zeile= null;
String wort = new String();
String token;
FileReader text;
BufferedReader tippen; //eingabepuffer fuer Suchbegriff
BufferedReader eingabe; //eingabepuffer fuer datei
try {
//Eingabe des Suchbegriffs
tippen = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Suchbegriff: ");
wort = tippen.readLine();
char[] suchbegriff = wort.toCharArray();
//Einlesen der Datei zur Suche
File Datei = new File("datei.txt");
text = new FileReader(Datei);
eingabe = new BufferedReader(text);
zeile =eingabe.readLine();
//solange datei noch zeichen enthält
while (zeile != null){
//Aufteilung der Zeichenkette in Token "Leerzeichen" dabei als Trennzeichen
StringTokenizer string = new StringTokenizer(zeile," ");
while (string.hasMoreTokens()){ //solange Token weitere Token vorhanden
token = string.nextToken(); //gehe zum nächsten Token
if (token.startsWith(wort)) //Token beginnt mit Suchwort, dann erhöhe anzahl
anzahl++;
else {
if (token.endsWith(wort)) //Token endet mit Suchwort, dann erhöhe anzahl
anzahl++;
}
zeile = eingabe.readLine();
}
}
//Ausgabe des Ergebnisses
System.out.println("Das wort " +wort+ " wurde " +anzahl+ " mal gefunden!");
eingabe.close();
} catch(IOException e)
{
System.out.println("Bitte geben sie keine Sonderzeichen ein");
}
catch(NoSuchElementException e)
{
System.out.println("Bitte geben sie einen Suchbegriff ein!");
}
}
}
Danke für ein paar tipps!