kostenloser Webspace werbefrei: lima-city


Wort in Textdatei finden

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    dschulte

    dschulte hat kostenlosen Webspace.

    Hallo ich würde gerne wissen wie ich in einer Textdatei nach einem bestimmen Wort suchen kann und mir davon die Zeile ausgeben lassen, in der es sich befindet..dazu nutze ich natürlich Java

    String wort = "SuchWort";
                int lines = 0;
                try {
                    FileReader fr = new FileReader(file);
                    BufferedReader br = new BufferedReader(fr);
                    while(true)
                    {
                        try {
                            String line = br.readLine();
                            if(line !=null)
                            {
                                if(line.indexOf(wort) > -1)
                                {
    //                                Zeilenanzahl bestimmen bis zum Wort
                                    try
                                    {
                                        lines = 0;
                                       if(br.readLine() != wort) {
                                            lines++;
                                        }
                                       else
                                       {
                                         
                                           break;
                                       }
                                       System.out.print("Habe das Wort " + wort + " gefunden in " + lines);
                                    
                                    }
    
                                    catch (Exception e)
                                    {
                                        e.printStackTrace();
                                    }
    
                                }
                            }


    aber so geht das irgendwie nicht

    als ergebnis krieg ich immer: Habe das Wort SuchWort gefunden in 1

    das wort befindet sich aber in Spalte x , also ganz woanders
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 1. Setzt du die Anzahl der Zeilen mit
    lines = 0;

    Bei jedem Durchlauf der Schleife wieder auf 0, das heißt, dass entweder 0 oder 1 rauskommt.

    2. Das Ganze ist hässlich verschachtelt.

    3. Du überprüfst, ob die ganze Zeile (!) dem Wort entsprichst und guckst nicht, ob in der Zeile das Wort vorkommt. Dass das Suchwort in einer Zeile alleine steht ist weniger häufig.


    Ich habe dir mal einen Vorschlag geschrieben, hier habe ich aber (scheint, als wolltest du das so) die Suche in den Zeilen weg gelassen. Ich habe es schon getestet und es funktioniert.

    private void sucheZeile(String wort) {
            try {
                int zeilen = 1;
                FileReader fr = new FileReader(datei);
                BufferedReader br = new BufferedReader(fr);
                String z = br.readLine();
                while (!z.isEmpty()) {
                    if (z.equals(wort)) {
                        System.out.println("Ich habe das Wort \"" + wort + "\" in Zeile " + zeilen + " gefunden.");
                        z = null;
                        br = null;
                        fr = null;
                    } else {
                        zeilen++;
                        z = br.readLine();
                    }
                }
            } catch (Exception e) {
                System.out.println("Suchfunktion beendet.");
            }
        }
  4. Moin,

    ich hab das Ganze mal vereinfacht:

    http://java-lima.pastebin.com/d1f3f1209

    Die Suche testet aber nicht auf Groß- und Kleinschreibung, das müsste selbst implementiert werden.
    Naheliegend wäre auch ein Regex, sofern es mehrere Wörter werden.

    Es gibt noch weitere Vereinfachungen - wie zum Beispiel die Anwendung der Klasse Scanner.
    Habe ich aber jetzt bewusst mal nicht mit aufgeführt, da sonst der Grundgedanke zwischen den Readern verloren geht.

    Gruß,
    Pawnee

    Beitrag zuletzt geändert: 3.2.2010 0:07:23 von pawnee
  5. Autor dieses Themas

    dschulte

    dschulte hat kostenlosen Webspace.

    danke sehr, das hat mir sehr geholfen
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!