Knuth-Morris-Pratt und vorherige Wörter

michiman

Grünschnabel
Hallo!

Ich bin noch immer dabei einen funktionierenden Code hinzukriegen, komme aber nicht sehr weit. Vielleicht kann mir einer von euch helfen.

Aufgabe: Mit KMP eine Textdatei/HTML-Seite auslesen und das Pattern sowie eine vorher festgelegte Anzahl an vor und nachgelagerten Wörtern ausgeben.

beste Grüße
 
Original geschrieben von michiman
Hallo!

Ich bin noch immer dabei einen funktionierenden Code hinzukriegen, komme aber nicht sehr weit. Vielleicht kann mir einer von euch helfen.

Aufgabe: Mit KMP eine Textdatei/HTML-Seite auslesen und das Pattern sowie eine vorher festgelegte Anzahl an vor und nachgelagerten Wörtern ausgeben.

beste Grüße

Auf diese Art und Weise wirst Du keine Hilfe erhalten. Zeig mal, was Du bisher versucht hast und wie die Dateien aussehen, die Du parsen sollst.
 
Hier ist der Code...

Ok! Hier ist der Code, den ich bisher geschrieben habe. Leider bin ich noch nicht so richtig mit den Klassen klargekommen. Man wird das ganze sicher viel eleganter schreiben können.
Es soll eine Suche im Internet durchgeführt werden und anschließend die Suchergebnisse nach dem Suchstring durchsucht werden und bei Erfolg zu jeder Seite den ersten Suchstring sowie vor- und nachgelagerte Worte.

Hier ist der Code:


import java.io.*;
import java.net.*;

public class ConsoleInputInt {

public static String readline() {
StringBuffer response = new StringBuffer();
try {
BufferedInputStream buff = new BufferedInputStream(System.in);
int in = 0;
char inChar;
do {
in = buff.read();
inChar = (char) in;
if (in != -1) {
response.append(inChar);
}
} while ((in != -1) & (inChar != '\n'));
buff.close();
return response.toString();
} catch (IOException e) {
System.out.println("Exception: " + e.getMessage());
return null;

}
}

public static void main(String[] arguments) {
System.out.print("\nWie heißt der Suchbegriff?");

String input = ConsoleInputInt.readString("");

System.out.println("\nDer Suchbegriff heißt, " + input);
System.out.println();
String Suche =
"http://de.search.yahoo.com/search/de?va=" + input + "&n=10";

System.out.print("Die Suche wird durchgeführt als \n" + Suche + "\n");
int laenge = Suche.length();
System.out.println(" ");

try {
DataOutputStream out =
new DataOutputStream(
new BufferedOutputStream(
new FileOutputStream("C:/Files/JH.txt")));

out.writeUTF(Suche);

out.close();
} catch (IOException e) {
}

try {
FileInputStream fout = new FileInputStream("C:/Files/JH.txt");
BufferedInputStream buff = new BufferedInputStream(fout);
int in = 0;
do {
in = buff.read();
if (in != -1)
System.out.print((char) (in));
} while (in != -1);
buff.close();
} catch (IOException e) {
System.out.println("Exception: " + e.getMessage());
}

try {
URL url = new URL(Suche);
Reader is = new InputStreamReader(url.openStream());
BufferedReader in = new BufferedReader(is);

String s;

while ((s = in.readLine()) != null) {
System.out.println(s);

try {
DataOutputStream out =
new DataOutputStream(
new BufferedOutputStream(
new FileOutputStream(
"C:/Files/JH2.txt",
true)));

out.writeUTF(s);

out.close();
} catch (IOException e) {
}

}

in.close();
} catch (MalformedURLException a) {
System.out.println("MalformedURLException: " + a);
} catch (IOException b) {
System.out.println("IOException: " + b);
}

}

private static String readString(String string) {
int ch;
String r = "";
boolean done = false;
while (!done) {
try {
ch = System.in.read();
if (ch < 0 || (char) ch == '\n')
done = true;
else if ((char) ch != '\r')
r = r + (char) ch;
} catch (java.io.IOException e) {
done = true;
}
}
return r;
}
}
 
Zurück