4
Ausgaben mit print(), printf() und println() In Java kann man Text mit den Methoden System.out.print() , System.out.println() und System.out.printf() auf der Konsole ausgeben. Der Unterschied zwischen print() und println() ist, dass println() die aktuelle Zeile immer mit einem Zeilenvorschub abschließt und die nächste Ausgabe in der nachfolgenden Zeile erfolgen wird, während print() in der selben Zeile weiter- schreiben lässt. printf() schließt ebenso wie print() die Zeile nicht ab, die nächste Ausgabe wird also hinter dem letzten geschriebenen Zeichen erfolgen. Weiterhin erlaubt printf() die Formatierung der Aus- gabe. print(), println() und printf() sind Methoden der PrintStream-Klasse, bei der sie auch im Detail beschrieben sind. System.out.println() print() und println() können mit verschiedenen Datentypen als Parameter aufgerufen werden. Die Wir- kung des Pluszeichens (+) hängt dabei von den beteiligten Datentypen und ihrer Stellung ab. Beispiele Anweisungen Ausgabe und Bemerkungen System.out.println(); Ein Zeilenvorschub wird ausgegeben, die nächste Aus- gabe erfolgt in die nächste Zeile. System.out.println("A"); Ausgabe: A String name = "Paul"; System.out.println(name + "chen"); Ausgabe: Paulchen Das Plus-Zeichen verkettet den Inhalt der String-Varia- blen name mit dem String-Literal "Hallo". int n = 5; System.out.println("n=" + n); Ausgabe: n=5 Das Plus-Zeichen verkettet das String-Literal "n=" mit dem Inhalt der int-Variablen n. System.out.println(3 + 2); Ausgabe: 5 Das Plus-Zeichen wirkt hier als Additions-Operator: Java evaluiert zuerst den Inhalt der Klammer. Da dort eine reine Rechenoperation steht, wird diese als erstes ausgeführt. Das Ergebnis der Addition wird der println()-Methode zur Ausgabe übergeben. System.out.println("Hallo"); System.out.println("du"); System.out.println("da"); Hallo du da println() schließt jede Ausgabe mit einem Zeilenum- bruch ab, jede Ausgabe erfolgt in eine eigene Zeile. Ausgaben mit print(), printf() und println() 05.01.2013 - HPG / GOL 1 ( 4 )

Ausgaben mit print(), printf() und println() · PDF fileAusgaben mit print(), printf() und println() In Java kann man Text mit den Methoden System.out.print(), System.out.println()

Embed Size (px)

Citation preview

Ausgaben mit print(), printf() und println()In Java kann man Text mit den Methoden System.out.print(), System.out.println() und System.out.printf() auf der Konsole ausgeben. Der Unterschied zwischen print() und println() ist, dass println() die aktuelle Zeile immer mit einem Zeilenvorschub abschließt und die nächste Ausgabe in der nachfolgenden Zeile erfolgen wird, während print() in der selben Zeile weiter­schreiben lässt. printf() schließt ebenso wie print() die Zeile nicht ab, die nächste Ausgabe wird also hinter dem letzten geschriebenen Zeichen erfolgen. Weiterhin erlaubt printf() die Formatierung der Aus­gabe.

print(), println() und printf() sind Methoden der PrintStream-Klasse, bei der sie auch im Detail beschrieben sind.

System.out.println()print() und println() können mit verschiedenen Datentypen als Parameter aufgerufen werden. Die Wir­kung des Pluszeichens (+) hängt dabei von den beteiligten Datentypen und ihrer Stellung ab.

Beispiele

Anweisungen Ausgabe und Bemerkungen

System.out.println(); Ein Zeilenvorschub wird ausgegeben, die nächste Aus­gabe erfolgt in die nächste Zeile.

System.out.println("A"); Ausgabe: A

String name = "Paul";System.out.println(name + "chen");

Ausgabe: Paulchen

Das Plus-Zeichen verkettet den Inhalt der String-Varia­blen name mit dem String-Literal "Hallo".

int n = 5;System.out.println("n=" + n);

Ausgabe: n=5

Das Plus-Zeichen verkettet das String-Literal "n=" mit dem Inhalt der int-Variablen n.

System.out.println(3 + 2); Ausgabe: 5

Das Plus-Zeichen wirkt hier als Additions-Operator: Java evaluiert zuerst den Inhalt der Klammer. Da dort eine reine Rechenoperation steht, wird diese als erstes ausgeführt. Das Ergebnis der Addition wird der println()-Methode zur Ausgabe übergeben.

System.out.println("Hallo");System.out.println("du");System.out.println("da");

Halloduda

println() schließt jede Ausgabe mit einem Zeilenum­bruch ab, jede Ausgabe erfolgt in eine eigene Zeile.

Ausgaben mit print(), printf() und println() 05.01.2013 - HPG / GOL 1 (4)

Anweisungen Ausgabe und Bemerkungen

System.out.print("Hallo");System.out.print("du");System.out.print("da");

Halloduda

print() schreibt nur den angegebenen Parameter ohne Zeilenumbruch, die Ausgaben erfolgen ohne Trennzei­chen direkt hintereinander.

System.out.printf()Die printf()-Methode wird üblicherweise verwendet, wenn die Ausgabe formatiert sein soll. printf() beendet Zeilen nicht mit einem Zeilenumbruch. Hier werden nur Teilaspekte und die elementare Verwen­dung von printf() beschrieben. Für eine vollständige Beschreibung siehe die Dokumentation der Format­ter-Klasse.

Die printf()-Methode erfordert mindestens einen Parameter vom Typ String, der im folgenden als „Formatierungsstring” bezeichnet wird. Dieser Formatierungsstring kann normalen Text enthalten, der wie von der print()-Methode ausgegeben wird. Zum Beispiel bewirkt die Anweisung

System.out.printf("Hallo Welt"); das Gleiche wie

System.out.print("Hallo Welt"); Der Formatierungsstring kann auch Ausdrücke enthalten, die die Formatierung der Ausgabe steuern. Jeder Formatierungsausdruck besteht aus einem Prozentzeichen (%), dem die eigentliche Formatbeschreibung folgt, z.B. %3d für die 3-stellige Ausgabe einer Ganzzahl. Für jeden solchen im Formatierungsstring gefun­denen Formatierungsausdruck muss der printf()-Methode ein Parameter übergeben werden, der seinem Formatierungsausdruck gemäß ausgegeben wird. Die Anzahl der Methodenparameter ergibt sich also aus der Anzahl der Formatierungsausdrücke. Die Anweisung

System.out.printf("%3d\n", 12);wird von Java folgendermaßen interpretiert:Im Formatierungsstring wird ein Prozentzeichen gefunden, Java erwartet dahinter einen gültigen Formatie­rungsausdruck. 3d ist ein gültiger Formatierungsausdruck und bedeutet, dass der Methodenaufruf einen Parameter vom Typ int enthalten muss, der rechtsbündig in der Länge 3 ausgegeben wird.

Der Formatierungsausdruck hat vereinfacht folgende Form (die Einträge in den eckigen Klammern sind optional):

%[Schalter][Breite].[Genauigkeit]Typ

• Die optionalen Schalter verändern das Format der Ausgabe. Ein Minuszeichen (-) z.B. sorgt für linksbündige Ausgabe.

• Die optionale Breite ist eine nicht-negative Ganzzahl, die die Mindestanzahl der insgesamt ausge­gebenen Zeichen bestimmt.

• Mit der optionalen Genauigkeit wird üblicherweise die Anzahl der ausgegebenen Zeichen einge­schränkt.

• Für Typ ist ein Buchstabe anzugeben. Beispiele für mögliche Werte von Typ sind:

Typ Beschreibung

s Der zugehörige Parameter wird als String ausgegeben.

S Der zugehörige Parameter wird als String in Großbuchstaben ausgegeben.

2 (4) 05.01.2013 - HPG / GOL Ausgaben mit print(), printf() und println()

d Der zugehörige Parameter wird als Ganzzahl ausgegeben.

f Der zugehörige Parameter wird als Dezimalzahl ausgegeben.

In den folgenden Beispielen werden verschiedene Umwandlungen und Formatierungsausdrücke diskutiert.

Beispielanweisungen Ausgabe und Bemerkungen

System.out.printf("Text");System.out.printf("X");

Ausgabe: TextX

Die beiden printf() enthalten keine Formatie­rungsausdrücke und verhalten sich daher wie print(). Die Ausgabe des zweiten Methoden­aufrufs wird ohne Zeilenumbruch direkt an die erste angehängt.

System.out.printf("%d\n", 12); Ausgabe: 12

Im Formatierungsstring steht der Formatierungs­ausdruck %d. Für diesen Formatierungsaus­druck muss im Methodenaufruf ein Parameter vom Typ int folgen, der dann als Ganzzahl ohne weitere Formatierung ausgegeben wird.

int x = 12;System.out.printf("X=%3d, Y=%3d\n", x, 12345);

Ausgabe: X= 12, Y=12345

Der Formatierungsstring enthält neben norma­lem Text ("X=", ", Y=" und "\n") zweimal den Formatierungsausdruck %3d. Für jeden die­ser Formatierungsausdrücke muss ein Parameter vom Typ int folgen, hier die int-Variable x (mit dem Wert 12) und die int-Konstante 12345. Die 3 in %3d bedeutet, dass die Ausga­be mindestens 3 Stellen lang ist. Für 12 werden nur 2 Stellen benötigt, die zusätzliche dritte Stel­le ist als Leerzeichen vor der 12 sichtbar (Zahlen werden standardmäßig rechtsbündig ausgege­ben). Die 3 im zweiten Formatierungsausdruck hat hier keine Wirkung, da für die Ausgabe von 12345 mehr Stellen als die minimale Anzahl 3 benötigt werden.

3 (4) 05.01.2013 - HPG / GOL Ausgaben mit print(), printf() und println()

Beispielanweisungen Ausgabe und Bemerkungen

double y=1234.1254567890;System.out.printf("A:%f:\n", y);System.out.printf("B:%5.2f:\n", y);System.out.printf("C:%12.5f:\n", y);System.out.printf("D:%12.6f:\n", y);

Ausgabe:

A:1234,125457:B:1234,13:C: 1234,12546:D: 1234,125457:

In diesem Beispiel enthält jeder Formatierungs­string jeweils festen Text und je einen Formatie­rungsausdruck.

Im Fall A ist in dem Formatierungsausdruck %f für Dezimalausgabe keine Mindestbreite und keine Genauigkeit festgelegt. Java verwendet dann Standardwerte.

Im Fall B beschränkt der Formatierungsausdruck %5.2f die Ausgabe auf 2 Dezimalstellen, die gerundet (!) ausgegeben werden. Die vorgegebe­ne Mindestbreite 5 bleibt hier ohne Auswirkun­gen, da einschließlich Komma schon 7 Stellen benötigt werden.

Im Fall C werden durch %12.5f mindestens 12 Stellen für die Ausgabe bereitgestellt, d.h. 5 De­zimalstellen, das Komma und als Konsequenz 12 – 5 – 1 = 6 Stellen vor dem Komma. Da nur 4 Stellen vor dem Komma benötigt werden, er­scheinen vor der Zahl 2 Leerstellen.

Im Fall D mit %12.6f wird Platz für 6 Dezi­malstellen, ein Komma und 12 – 6 – 1 = 5 Stel­len vor dem Komman bereitgestellt. Da nur 4 Stellen vor dem Komma benötigt werden, er­scheint vor der Zahl eine Leerstelle.

String gs = "gross";double d = 1.9;System.out.printf("!%4.1fm ist %7S!\n", d, gs);

Ausgabe: ! 1,9m ist GROSS!

Beachte die Einrückung der 1.9 um eine Stelle: Für die Darstellung von 1.9 mit einer Nachkom­mastelle werden drei Positionen benötigt, als Mindestbreite sind bei %4.1f aber vier Zeichen vorgegeben.Der Formatierungsausdruck %7S wandelt den zugeordneten String in Großbuchstaben um und stellt dafür mindestens 7 Stellen zur Verfügung. Da GROSS nur 5 Stellen benötigt, wird links mit 2 Leerzeichen aufgefüllt..

4 (4) 05.01.2013 - HPG / GOL Ausgaben mit print(), printf() und println()