Hallo zusammen, ich habe mich kürzlich mit Scanner und BufferedReader beschäftigt und hätte da einige Fragen zur Verständnis.
1.Frage
Die Scanner Klasse hat ja eine .useDelimiter("Pattern") methode die ich selbst anwenden möchte, nur verstehe ich nicht welche Pattern es gibt bzw. gibt es da eine Liste, welche Parameter man für diese Methode benutzen darf ? Was bedeutet zb. der Parameter scannername.useDelimiter("\\s+"); ?
Ich weiß, dass der Delimiter meine Inputs aufteilt, zb wenn ich "Hallo Welt" eintippe, kann ich durch den Delimitter die Wörter in einzelne variablen speichern.
2.Frage
Ich habe versucht mir selbst mit dem Scanner und BufferedReader eine klasse zu schreiben die für meine zukünftigen Programme immer benutzt werden kann. Die soll einfach nur Befehle vom Benutzer entgegennehmen und diese Ausführen.
Ich habe dort meine Main-Methode die ein BufferedReader Objekt erstellt und dieses Objekt wird dann der Methode übergeben, die die Eingaben verwaltet usw. und drot erstelle ich mir einen Scanner der die Inputs vom BufferedReader entgegennimmt.
Ich frage mich nur ob das Sinn macht mit dem BufferedReader einzulesen und das eingelesen dem Scanner übergeben und damit weiter arbeiten... oder sollte man lieber alles entweder mit Scanner oder mit BufferedReader machen ? Ist das schlechte Programmierung, wenn man sie mischt ?
Zur Verdeutlichung der Code zu Frage 2:
3.Frage
Wenn ich einen close Befehl mit system.exit(0) habe muss ich die Methode scanner.close() trotzdem benutzen ?
1.Frage
Die Scanner Klasse hat ja eine .useDelimiter("Pattern") methode die ich selbst anwenden möchte, nur verstehe ich nicht welche Pattern es gibt bzw. gibt es da eine Liste, welche Parameter man für diese Methode benutzen darf ? Was bedeutet zb. der Parameter scannername.useDelimiter("\\s+"); ?
Ich weiß, dass der Delimiter meine Inputs aufteilt, zb wenn ich "Hallo Welt" eintippe, kann ich durch den Delimitter die Wörter in einzelne variablen speichern.
2.Frage
Ich habe versucht mir selbst mit dem Scanner und BufferedReader eine klasse zu schreiben die für meine zukünftigen Programme immer benutzt werden kann. Die soll einfach nur Befehle vom Benutzer entgegennehmen und diese Ausführen.
Ich habe dort meine Main-Methode die ein BufferedReader Objekt erstellt und dieses Objekt wird dann der Methode übergeben, die die Eingaben verwaltet usw. und drot erstelle ich mir einen Scanner der die Inputs vom BufferedReader entgegennimmt.
Ich frage mich nur ob das Sinn macht mit dem BufferedReader einzulesen und das eingelesen dem Scanner übergeben und damit weiter arbeiten... oder sollte man lieber alles entweder mit Scanner oder mit BufferedReader machen ? Ist das schlechte Programmierung, wenn man sie mischt ?
Zur Verdeutlichung der Code zu Frage 2:
Java:
public final class Kommandos{
//Konstruktor
public static void main(String[] args) throws IOException {
BufferedReader bufReader = new BufferedReader(new InputStreamReader(System.in));
run(bufReader);
}
private static void run(BufferedReader bf) throws IOException {
String eigabe = bf.readLine();
Scanner scanner = new Scanner(eingabe);
//code....
}
3.Frage
Wenn ich einen close Befehl mit system.exit(0) habe muss ich die Methode scanner.close() trotzdem benutzen ?
Zuletzt bearbeitet: