tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
271
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von flyandshot
    flyandshot flyandshot ist offline Mitglied
    Registriert seit
    Mar 2007
    Beiträge
    12
    Hallo liebe Tutorials JavaCommunity,

    ich bin gerade dabei ein Programm zu schreiben, welches in einem eingegebenen Text nach Wörtern sucht.
    Dabei wird, wenn ein Wort in dem Text gefunden wird, dieses herausgelöscht. Ist der Text dann noch länger als vorgegebene Länge, wird der Filter genau noch einmal (also rekursiv) mit dem bearbeiteten Text aufgerufen.
    Die Vergleichswörter werden aus einer Liste ausgelesen.
    Das Problem ist, dass das Programm ab einem bestimmten Punkt die bearbeiteten Text nicht mehr kürzt, sondern irgendwie aneinander hängt.


    Hier mal der gesamte Code


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    
    import java.io.*;
    import java.io.RandomAccessFile;
    import java.util.*;
     
     
    public class rekurs2 {
       static int restlänge = 12;
       static String [] checkl = new String [1500000];
       static int wtc = 50; //Wörter in der Wortliste
       static int ebtief = 0;
     
     
      public static void main(String[] args) {
        String lösungtxt;
     
         wortliste();
     
        lösungtxt = "derbaueristvielleichtschlauabernichtunbedingtdennerweißnichtalle";
     
        minimizer(lösungtxt);
     
     
     
      }
      
      
      private static void wortliste() {
      String tchange; // Einlese Variable
     
     
      //*****************Einlesen der Wortliste in ein Array**********************
        try
        {
     
         FileReader fr2 = new FileReader("Top.txt");
         BufferedReader br2 = new BufferedReader(fr2);
     
          for (int o =0 ; o <= wtc ; o++ ) {
            tchange = br2.readLine();
            checkl[o] = tchange.toLowerCase();
     
          }
     
         br2.close();
        }  catch ( IOException e ) {e.printStackTrace();}
     
     
      }
      
      
      
      private static void minimizer (String text){
          int endstel = 0;
          int stelle = 0;
          String bearb = text;
          String ausgabe = "";
          String wort = "";
     
     
     
     
          for (int z = 0; z < wtc; z++){
     
     
                  wort = checkl[z]; // Definition des zu suchenden Wortes
     
     
                  if (bearb.contains(wort.toLowerCase())) {
     
                     stelle = bearb.indexOf(wort.toLowerCase());  // Anfangsstelle des Wortes im Text feststellen
                     endstel = stelle + wort.length();          // Endstelle des Wortes im Text feststellen
     
     
                  //Ausgabe bis zum Anfang des Wortes
                         for (int i = 0; i < stelle;i++)
                         {
                           ausgabe = ausgabe + bearb.charAt(i);
                         }
     
     
                  //Ausgabe nach dem Wort bis Ende des Textes
                         for (int i = endstel; i < bearb.length();i++)
                         {
                           ausgabe = ausgabe + bearb.charAt(i);
                         }
     
     
     
                    if (ausgabe.length() > restlänge)
                    {
                       minimizer(ausgabe);
                    }else {
                     System.out.println(bearb+ " @ "  + z);
                    }
     
     
                  }
     
          }
     
     
     
     
     
      }
    }


    Eine (oder mehrere) Antworten wären super Ich steh grad ziemlich auf dem Schlauch

    Grüße flynshot
     
    Das Leben besteht aus If-Anweisungen und ein bisschen Mathematik

  2. #2
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist gerade online Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Hi,

    Möglichkeit 1:
    Du kannst dir mithilfe von 'string.subString(int start, int end)' den Text vor dem Wort und nach dem Wort geben lassen. Dann brauchst du nicht die chars selber aneinander hängen.

    Möglichkeit 2:
    Wenn du das Ergebnis aber auch ohne Rekursion lösen darfst, würde ich dir die Methode 'string.replaceFirst(String regex, String replacement)' dann kannst du einfach nach deinem Wort x mal suchen und durch einen Leerstring ersetzen.

    Gruß

    Fabio
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

Ähnliche Themen

  1. Wortfilter
    Von Online-Skater im Forum PHP
    Antworten: 9
    Letzter Beitrag: 08.09.11, 18:52
  2. Ein etwas anderer Wortfilter in HTML
    Von FP4Lisa im Forum PHP
    Antworten: 3
    Letzter Beitrag: 12.04.10, 16:36
  3. Rekursionsproblem
    Von Oetzicool im Forum PHP
    Antworten: 4
    Letzter Beitrag: 25.01.10, 01:13
  4. Wortfilter
    Von jürgen-schulz im Forum PHP
    Antworten: 14
    Letzter Beitrag: 03.09.09, 07:38
  5. Wortfilter
    Von Sebastian Wramba im Forum PHP
    Antworten: 5
    Letzter Beitrag: 28.04.02, 15:07