Lernpfad:Würfelspiel in Java/Ein- und Ausgabe auf der Kommandozeile: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Jneug (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „{{Navigation/{{ROOTPAGENAME}}}} == Ein- und Ausgabe auf der Kommanozeile == == Verwendung der Scanner-Klasse == <syntaxhighlight lang="java" line="1"> publi…“) |
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 2: | Zeile 2: | ||
== Ein- und Ausgabe auf der Kommanozeile == | == Ein- und Ausgabe auf der Kommanozeile == | ||
Die Kommandozeile wird in Java über zwei Datenströme angesprochen. Diese können über die immer verfügbare <code>System</code> Klasse angesprochen werden. | |||
; <code>System.out</code> | |||
: Die Ausgabe erfolgt über den <code>System.out</code> Datenstrom. Er bietet dieser ist ein Objekt der Klasse [https://docs.oracle.com/javase/8/docs/api/java/io/PrintStream.html PrintStream] und beherrscht dessen Methoden zur Ausgabe, wie <code>print(String)</code> und <code>println(String)</code>. | |||
; <code>System.in</code> | |||
: Um Date von der Kommandozeile einzulesen steht unter <code>System.in</code> ein Objekt der Klasse [https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html InputStream] zur Verfügung. Dieser kann Daten in Form von ''Bytes'' einlesen. Zur einfacheren Handhabung stellt Java die Hilfsklasse <code>java.util.Scanner</code> zur verfügung, mit der statt Bytes auch direkt ''Integer'' oder ''Strings'' eingelesen werden können. | |||
== Ausgaben auf der Kommandozeile == | |||
Ausgaben über den Ausgabestrom <code>System.out</code> können jederzeit in einem Javaprogramm gemacht werden. | |||
<syntaxhighlight lang="java" line="1"> | |||
// Ausgabe mit automatischem Zeilenumbruch am Ende | |||
System.out.println("Hello, World!"); | |||
// Ausgabe ohne Zeilenumbruch am Ende | |||
System.out.print("Hello, "); | |||
System.out.print("World!"); | |||
System.out.print("\n"); // Manueller Zeilenumbruch. Das Selbe wie System.out.println(); | |||
</syntaxhighlight> | |||
Für komplexere Ausgaben gibt es noch die Methode <code>printf(String, Object..)</code>, der man neben einem Text-Objekt | |||
auch noch eine Reihe an weiteren Parametern übergibt, die dann im Text für vorgegebene Platzhalter eingesetzt werden. Dies | |||
erlaubt wesentlich genauere Textformatierungen für Teste mit variablen Inhalten, als mit einfacher String-Verknüpfung durch | |||
<code>+</code>. | |||
<syntaxhighlight lang="java" line="1"> | |||
// String mit Platzhaltern für Daten: | |||
// %s - Platzhalter für einen String | |||
// %d - Platzhalter für eine Zahl | |||
// %05d bedeutet, dass die Zahl so viele Nullen vorangestellt werden, dass sie insg. 5 Zeichen hat | |||
System.out.printf("Hallo, %s! Hier ist eine Zahl: %05d", "Welt", 5); // Hallo, Welt! Hier ist eine Zahl: 00005 | |||
</syntaxhighlight> | |||
Eine gute [http://www.hpg-speyer.de/pdf/unterrichtsfaecher/informatik/printf.pdf Übersicht der Ausgabemethoden und Platzhalter-Befehle gibt es in diesem PDF]. | |||
== Verwendung der Scanner-Klasse == | == Verwendung der Scanner-Klasse == |
Version vom 1. Mai 2018, 16:48 Uhr
Ein- und Ausgabe auf der Kommanozeile
Die Kommandozeile wird in Java über zwei Datenströme angesprochen. Diese können über die immer verfügbare System
Klasse angesprochen werden.
System.out
- Die Ausgabe erfolgt über den
System.out
Datenstrom. Er bietet dieser ist ein Objekt der Klasse PrintStream und beherrscht dessen Methoden zur Ausgabe, wieprint(String)
undprintln(String)
. System.in
- Um Date von der Kommandozeile einzulesen steht unter
System.in
ein Objekt der Klasse InputStream zur Verfügung. Dieser kann Daten in Form von Bytes einlesen. Zur einfacheren Handhabung stellt Java die Hilfsklassejava.util.Scanner
zur verfügung, mit der statt Bytes auch direkt Integer oder Strings eingelesen werden können.
Ausgaben auf der Kommandozeile
Ausgaben über den Ausgabestrom System.out
können jederzeit in einem Javaprogramm gemacht werden.
// Ausgabe mit automatischem Zeilenumbruch am Ende
System.out.println("Hello, World!");
// Ausgabe ohne Zeilenumbruch am Ende
System.out.print("Hello, ");
System.out.print("World!");
System.out.print("\n"); // Manueller Zeilenumbruch. Das Selbe wie System.out.println();
Für komplexere Ausgaben gibt es noch die Methode printf(String, Object..)
, der man neben einem Text-Objekt
auch noch eine Reihe an weiteren Parametern übergibt, die dann im Text für vorgegebene Platzhalter eingesetzt werden. Dies
erlaubt wesentlich genauere Textformatierungen für Teste mit variablen Inhalten, als mit einfacher String-Verknüpfung durch
+
.
// String mit Platzhaltern für Daten:
// %s - Platzhalter für einen String
// %d - Platzhalter für eine Zahl
// %05d bedeutet, dass die Zahl so viele Nullen vorangestellt werden, dass sie insg. 5 Zeichen hat
System.out.printf("Hallo, %s! Hier ist eine Zahl: %05d", "Welt", 5); // Hallo, Welt! Hier ist eine Zahl: 00005
Eine gute Übersicht der Ausgabemethoden und Platzhalter-Befehle gibt es in diesem PDF.
Verwendung der Scanner-Klasse
public int zahlEinlesen( String pText ) {
Scanner eingabe = new Scanner(System.in);
System.out.println(pText);
return eingabe.nextInt();
}