Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich bin absoluter Programmieranfänger (erstes Semester), und bräuchte hierbei Hilfe...
Die Aufgabenstellung steht als Kommentar oben dran. Die konkrete Frage ist, wie bekomm ichs hin das der mir nur die Zeilen ausgibt in denen die Strings enthalten sind.
Danke im Voraus.
Java:
import java.io.*;
import java.net.*;
public class Filter {
private static String erzeugterString;
private static String erzeugteURL;
/**
* Schreiben Sie ein Programm "Filter", das den Benutzer
* erst nach der URL einer Datei im Internet und dann nach
* einem Text-String fragt, beide Informationen einliest und dann
* genau diejenigen Zeilen der Datei auf den Bildschirm ausgibt,
* in denen der String enthalten ist.
*/
public static void main(String[] args) throws IOException {
urlEingabe();
stringEingabe();
System.out.println("Dies ist Ihre Eingabe:");
System.out.println(erzeugterString);
System.out.println(erzeugteURL);
System.out.println("wird überprüft...");
URL u = new URL(erzeugteURL);
FilterInputStream ins = (FilterInputStream) u.openStream();
InputStreamReader isr = new InputStreamReader(ins);
BufferedReader bf = new BufferedReader(isr);
String line = whiteHouse.readLine();
while (line != null) {
if(line == erzeugterString){
System.out.println(line);
}
else{
line = whiteHouse.readLine();
}
}
}
public static void urlEingabe() throws IOException{
InputStreamReader isr1;
BufferedReader keyboard1;
isr1 = new InputStreamReader(System.in);
keyboard1 = new BufferedReader(isr1);
System.out.println("Bitte eine URL eingeben");
System.out.println("ACHTUNG! Eine URL beginnt mit http://www...");
erzeugteURL = keyboard1.readLine();
}
public static void stringEingabe() throws IOException{
InputStreamReader isr2;
BufferedReader keyboard2;
isr2 = new InputStreamReader(System.in);
keyboard2 = new BufferedReader(isr2);
System.out.println("Geben Sie bitte nun einen String-Text ein");
erzeugterString = keyboard2.readLine();
}
}
Habs mir jetzt nicht ganz durchgeschaut, aber vielleicht hilft dir ja die methode contains("string zum überprüfen ob er enthalten ist") der klasse string weiter?
Zudem solltest du deine Schleife so umschreiben, dass das
Code:
readLine
entweder im Schleifenkopf oder im direkt im Schleifenrumpf steht - auf jeden Fall muss auch gelesen werden, wenn die Bedingung erfüllt ist (sonst hast du eine Endlosschleife).
//EDIT:
Ah - die Antworten haben sich dann etwas überschnitten.
Trotz allem kannst du das readLine nach die if-Abfrage ziehen und dir somit den else-Zweig sparen:
Java:
if(line.contains(erzeugterString)){
System.out.println (line);
}
line = bf.readLine();