Donnerstag, 18. Dezember 2008

 

printf in Java

Seit der Version 1.5 gibt es in Java eine bequeme Möglichkeit die Ausgabe zu formatieren.

Jeder PrintStream besitzt die Methode printf(String format, Object… args). Die Standardausgabe System.out oder die Standardfehlerausgabe System.err sind solche PrintStream s.

Folgendes Codefragment zeigt die prinzipielle Verwendung



/** formatierte Ausgabe */
String s = "Zahl";
int zahl = 23;
double d = 3.1415927;
System.out.printf("%s = %d\n", s, zahl);
// ^ ^ ^ ^
// | | | |
// | +----------+
// | |
// +----------+

System.out.printf("alles: [%f]\n", d);
System.out.printf("3 Nachkommastellen: [%.3f]\n", d);
System.out.printf("10 gesamt, 2 NK: [%10.2f]\n", d);
System.out.printf("10 gesamt, 2 NK: [%10.2f]\n", -d);
System.out.printf("10 gesamt, 2 NK: [%10f]\n", -d);
System.out.printf("%%-Zeichen %.2f%%\n", -d);
System.out.printf("String in 10 Zeichen: [%10s]\n", s);
System.out.printf("String in 10 Zeichen: [%-10s]\n", s);

Die Ausgabe ist dann



Zahl = 23
alles: [3,141593]
3 Nachkommastellen: [3,142]
10 gesamt, 2 NK: [ 3,14]
10 gesamt, 2 NK: [ -3,14]
10 gesamt, 2 NK: [ -3,141593]
%-Zeichen -3,14%
String in 10 Zeichen: [ Zahl]
String in 10 Zeichen: [Zahl ]

Die Seite zum direkten Verwenden in eclipse: printf.jpage

Die Klasse String hat eine Methode format(), die genauso wie das oben beschriebene printf() funktioniert, nur liefert format() eben einen passend formatierten String zurück.



Ein Beispiel:


// Formatieren der Zahl z so, dass sie rechtsbündig innerhalb von 8 Zeichen mit
// 2 Nachkommastellen angezeigt wird. Der Formatstring für printf() wird mittels
// String.format() erzeugt.
int gesamtBreite = 8;
int anzNachkomma = 2;
double z = 2.12345676;
String fmt = String.format("%%%d.%df\n", gesamtBreite, anzNachkomma);
System.out.printf(fmt, z);

// Variante 2, wie oben aber linksbündig
int gesamtBreite = -8;
int anzNachkomma = 2;
double z = 2.12345676;
String fmtZ = String.format("%" + gesamtBreite + "." + anzNachkomma + "f\n",z);
System.out.print(fmtZ);

Labels:


Kommentare:

Kommentar veröffentlichen

Abonnieren Kommentare zum Post [Atom]





<< Startseite

This page is powered by Blogger. Isn't yours?

Abonnieren Posts [Atom]