Suchen im Text

celloman

Erfahrenes Mitglied
Hy Leute

in eine Datei möchte ich nach ("Part: 1 (47)")) suchen.


Code:
 private static void insert(String val){
        StringTokenizer st = new StringTokenizer(val);
        int i = 0;
        while(st.hasMoreTokens())
            {
            if(st.nextToken().equals("Part: 1 (47)"))
                {
                i++;
                st.nextToken();
                }
            }
        System.out.println("In der Datei ist das Wort Part: " + i + " mal enthalten");
        
      
   
    }


funktioniert nicht was ist da nicht in ordnung

MFG
 
Das kann auch nicht funktionieren. Der Tokenizer zerlegt Dir den String. Laß Dir mal immer st.nextToken() ausgeben.....:

Code:
Part:
1
(47)

Es gibt also kein Element 'Part: 1 (47)'
Wenn Du es als klares Trennelement haben möchtest, nutz z.B. einfach Part_1_(47). Das wird als ein Elemt erkannt.
 
Hy

in der Datei ist es nicht so angegeben Part_1_(47).in der Datei steht Part 1 (47). und die will ich suchen .

MFG
 
Hy

in der Datei ist es nicht so angegeben Part_1_(47).in der Datei steht Part 1 (47). und die will ich suchen .

MFG

Hast Du Dir mal die Ausgabe angeschaut, die Dein Tokenizer erzeugt!? Dann weißt Du, warum er nichts findet....
Alternativ könntest Du bei diesem Weg einfach fragen, wenn 1 Token 'Part' ist, folgt dann '1' und danach '(47)'... Ist zwar nicht schön, aber eine Lösung.
 
Sorry, aber dafür kenne ich mich zu wenig mit Java aus, als Dir eine professionelle Lösung anzubieten.

Das "Part: 1 (47)" steht alleine in einer Zeile? Vielleicht hilft es die externe Datei Zeile für Zeile einzulesen und dann könntest Du vergleichen, aber dann wirst Du wohl wieder mit Deinen Werten Probleme bekommen, wenn ich mich recht entsinne.
 
Wie wir dir schon im letzten (der vielen) Thread(s) versucht haben mitzuteilen, ist der Stringtokenizer dazu da, einen String nach einem bestimmten Trennzeichen(folge) zu trennen und nicht dazu zu Suchen.

Dafür ist z.B. die indexOf Methode der String Klasse da, die wir dir auch schon mehrmals nahegelegt haben, ohne Erfolg.

Dazu möchte ich, was ich selten tue, auf die Netiquette verweisen:
Bitte erstelle keine Doppel-/Mehrfach-/Pushpostings. Dazu zählen insbesondere das Erstellen identischer Themen in mehreren unterschiedlichen Unterforen, das mehrfache oder erneute Einstellen eines bereits vorhandenen Themas.

Dazu hast du die aller selbe Frage Stellung in 3 anderen Foren gestellt und dort auch teilweise zich Threads erstellt...
 
Zuletzt bearbeitet:
Hallo Leute

ich lese eine Datei zeilenweise in einen String.
und überprüfe es nach einem Word.

das Word kann nicht gefunden Weden obwol das Word in der Datei orhanden ist.

Code:
String findMe = "MaFrame";
		int searchMeLength = line.length();
		int findMeLength = findMe.length();
		boolean foundIt = false;
		for (int i = 0; i <= (searchMeLength - findMeLength); i++) {
		   if (line.regionMatches(i, findMe, 0, findMeLength)) {
		      foundIt = true;
		      System.out.println(line.substring(i, i + findMeLength));
		      break;	
		   }
		}
		if (!foundIt) System.out.println("No match found.");
 
Ich gehe mal davon aus, dass du das Wort nur finden willst oder?

Wie wärs dann hiermit:

Code:
if ( isInData( BufferedReader f = new BufferedReader(new FileReader(""C:\BSP.txt"))) 
    System.out.println("String found!");
else 
    System.out.println("String not found!");

Code:
public boolean isInData(BufferedReader reader, String findMe) {
    Boolean exists = false;
    String line;
    while ( (line  = reader.readLine() ) != null && ( !exists) )
        exists = line.contains(findMe);
    return exists;
}

Bitte!
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück