flyandshot
Grünschnabel
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
Eine (oder mehrere) Antworten wären super Ich steh grad ziemlich auf dem Schlauch^^
Grüße flynshot
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:
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