Wie kann man auf die Kommandozeile Text ausgeben?
System.out.println("Hallo Welt!");
Doch was versteckt sich hierunter eigentlich? out ist
ein in der Klasse System statisch deklarierter PrintStream,
der die überladenen Methoden print, println
und, ab JDK 1.5, printf bereit stellt. Werden diese
Methoden auf Objekte angewandt, werden übrigens intern
deren Methoden toString() aufgerufen. Dieses Prinzip
ermöglicht es, die Methoden für beliebige
Ausgaben zu verwenden.
Der Unterschied zwischen print() und println
besteht darin, dass println() zusätzlich einen
Zeilenumbruch nach der Ausgabe einfügt.
Ab dem JDK
1.5 enthält die Klasse PrintStream die Methode prinf,
mit der formatierte Ausgaben möglich sind. Die allgemeine
Syntax einer solchen Angabe folgt dem Schema1
"%[Argument-Index$][Flags][Breite][.Nachkommastellen]Konvertierungstyp", argument 1, arument 2, ...
Hierbei bedeuten die einzelnen Einträge folgendes:
Index | Position innerhalb der Argument-Liste: 1$ bezeichnet das erste Argument, 2$ das zweite, etc. |
Flags | Gibt das Ausgabeformat an. Die erlaubten Flags richten sich nach dem jeweiligen Argumenttyp. |
Breite | positiv ganzzahlig; gibt die Minimalzahl der Zeichen an, die ausgegeben werden |
Nachkommastellen | Anzahl der auszugebenden Nachkommastellen |
Konvertierungstyp | Konvertierungstyp des Arguments |
Flags bezeichnen nähere Formatierungsangaben. Die wichtigsten sind:
'-' | linksbündige Ausrichtung |
'+' | Vorzeichen immer mit ausgeben |
'0' | Auffüllen der Breite mit Nullen, Breite muss angegeben werden! |
Der Konvertierungstyp bezieht sich auf das angesprochene Argument. Eine Tabelle der wichtigsten Typen folgt, eine komplette Auflistung findet sich unter https://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html. Konvertierungszeichen für nicht-numerische Argumente können in Groß- und Kleinschrift verwendet werden, wobei eine Verwendung in Großschrift einem Äquivalent von String.toUpperCase() entspricht.
b | entspricht String.valueOf() für boolsche Werte, sonst true wenn arg != null |
c | Unicode-Character-Darstellung |
d | Dezimal (Integer zu Basis 10) |
o | Octal (Integer zu Basis 8) |
x | Hexadezimal (Integer zu Basis 16) |
f | Fießkommazahl |
s | String |
t | Zeit/Datum; auf das 't' muss eines der folgenden Zeichen
folgen: H (Stunde), M (Minute), S (Sekunde), d (Tag), m (Monat), Y (Jahr), D (Datum als Tag-Monat-Jahr) |
Hier einige Beispiele:
boolean bool = 5>2;
System.out.printf("%B", bool); // TRUE
System.out.printf("%b", bool); // true
Calendar c = Calendar.getInstance();
Date d = new Date(5000l);
System.out.printf("Es ist nicht %2$tY, sondern der %1$te.%1$tm.%1$tY", c, d); // Es ist nicht 1970, sondern der 30.12.2009
String w = "Welt!", h = "Hallo ";
System.out.printf("%2$s %1$S", w, h); // Hallo WELT!
System.out.printf("%03d", 7); // 007
System.out.printf("%5c", 38); // &
System.out.printf("%-5c", 38); // &
1) Die in '[]' gesetzten Angaben sind optional.
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.