Wie kann man auf die Kommandozeile Text ausgeben?

Java kennt verschiedene Möglichkeiten, um beliebigen Text auf der Konsole auszugeben. Die bekannteste Methode ist hierbei sicherlich:

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.