Formatierung numerischer Druckausgabe

Formatierung numerischer Druckausgabe

Früher haben Sie die Verwendung der print und println Methoden zum Drucken von Zeichenfolgen auf Standardausgabe gesehen (System.out). Da alle Zahlen in Zeichenfolgen konvertiert werden können (wie Sie später in dieser Lektion sehen werden), können Sie mit diesen Methoden eine beliebige Mischung aus Zeichenfolgen und Zahlen ausdrucken., Die Java-Programmiersprache verfügt jedoch über andere Methoden, mit denen Sie viel mehr Kontrolle über Ihre Druckausgabe ausüben können, wenn Zahlen enthalten sind.

Die printf-und Formatmethoden

Das Paket java.io enthält einePrintStream – Klasse mit zwei Formatierungsmethoden, mit denen Sie print und printlnersetzen können. Diese Methoden, format und , entsprechen einander., Die bekannte System.out, die Sie verwendet haben, ist zufällig ein PrintStream – Objekt, sodass Sie PrintStream – Methoden für System.outaufrufen können. Daher können Sie format oder an einer beliebigen Stelle in Ihrem Code verwenden, an der Sie zuvor print oder println., Zum Beispiel

System.out.format(.....);

Die Syntax für diese beiden java.io.PrintStream Methoden ist die gleiche:

public PrintStream format(String format, Object... args)

wobei format eine Zeichenfolge ist, die die zu verwendende Formatierung angibt, und args ist eine Liste der Variablen, die mit dieser Formatierung gedruckt werden sollen. Ein einfaches Beispiel wäre

Der erste Parameter format ist eine Formatzeichenfolge, die angibt, wie die Objekte im zweiten Parameter args formatiert werden sollen., Die Formatzeichenfolge enthält sowohl einfachen Text als auch Formatbezeichner, bei denen es sich um Sonderzeichen handelt, die die Argumente von Object... argsformatieren. (Die Notation Object... args heißt varargs, was bedeutet, dass die Anzahl der Argumente variieren kann.)

Formatbezeichner beginnen mit einem Prozentzeichen ( % ) und enden mit einem Konverter. Der Konverter ist ein Zeichen, das den Typ des zu formatierenden Arguments angibt. Zwischen dem Prozentzeichen ( % ) und dem Konverter können Sie optionale Flags und Spezifizierer haben., Es gibt viele Konverter, Flags und Spezifizierer, die in

dokumentiert sind Hier ist ein grundlegendes Beispiel:

int i = 461012;System.out.format("The value of i is: %d%n", i);

Die %d gibt an, dass die einzelne Variable eine Dezimalzahl ist. Die %n ist ein plattformunabhängiges Zeilenumbruchzeichen. Die Ausgabe lautet:

The value of i is: 461012

Die und format Methoden sind überlastet., Jede hat eine Version mit folgender Syntax:

public PrintStream format(Locale l, String format, Object... args)

Zum Drucken von Zahlen im französischen System (wobei anstelle der Dezimalstelle in der englischen Darstellung von Gleitkommazahlen ein Komma verwendet wird) würden Sie beispielsweise Folgendes verwenden:

Ein Beispiel

Die folgende Tabelle listet einige der Konverter und Flags auf, die im Beispielprogramm verwendet werden, TestFormat.java

, das folgt der Tabelle.,

Converters and Flags Used in TestFormat.java
Converter Flag Explanation
d A decimal integer.
f A float.
n A new line character appropriate to the platform running the application. You should always use %n, rather than \n.,
tB Ein Datum & Zeit-Konvertierung—locale-spezifische vollständiger name des Monats.
td, te Ein Datum & Zeitkonvertierung—2-stelliger Tag des Monats. td hat führende Nullen nach Bedarf, te nicht.
ty, tY Ein Datum & Zeitkonvertierung—ty = 2-stelliges Jahr, tY = 4-stelliges Jahr.
tl Ein Datum & Zeitkonvertierung—Stunde in 12-Stunden-Uhr.,
tM Ein Datum & Zeitkonvertierung—Minuten in 2 Ziffern, mit führenden Nullen nach Bedarf.
tp Ein Datum & Zeit-Konvertierung—locale-spezifischen „am/pm“ (in Kleinbuchstaben).
tm Ein Datum & Zeitkonvertierung—Monate in 2 Ziffern, mit führenden Nullen nach Bedarf.,
tD A date & time conversion—date as %tm%td%ty
08 Eight characters in width, with leading zeroes as necessary.
+ Includes sign, whether positive or negative.
, Includes locale-specific grouping characters.
Left-justified..
.3 Three places after decimal point.
10.,3 Zehn Zeichen in der Breite, rechts gerechtfertigt, mit drei Stellen nach dem Komma.

Das folgende Programm zeigt einige der Formatierungen, die Sie mit formatmachen können. Die Ausgabe wird in doppelten Anführungszeichen im eingebetteten Kommentar angezeigt:

Hinweis: Die Diskussion in diesem Abschnitt behandelt nur die Grundlagen der Methoden format und . Weitere Details finden Sie im Abschnitt Basic I/O des Essential Trail auf der Seite „Formatierung“.,
Die Verwendung von String.format zum Erstellen von Strings ist in Strings enthalten.

Die DecimalFormat-Klasse

Sie können die java.text.DecimalFormat – Klasse verwenden, um die Anzeige von führenden und nachfolgenden Nullen, Präfixen und Suffixen, Gruppierungs – (Tausende) Trennzeichen und dem Dezimaltrennzeichen zu steuern. DecimalFormat bietet viel Flexibilität bei der Formatierung von Zahlen, kann Ihren Code jedoch komplexer machen.,

Das folgende Beispiel erstellt einDecimalFormat – Objekt,myFormatter, indem eine Musterzeichenfolge an denDecimalFormat – Konstruktor übergeben wird., Die format()—Methode, die DecimalFormat von NumberFormat erbt, wird dann von myFormatteraufgerufen-sie akzeptiert einen double – Wert als Argument und gibt die formatierte Zahl in einer Zeichenfolge zurück:

Hier ist ein Beispiel programm, das die Verwendung von DecimalFormat:

Die Ausgabe ist:

123456.789 ###,###.### 123,456.789123456.789 ###.## 123456.79123.78 000000.000 000123.78012345.67 $###,###.### $12,345.67

Die folgende Tabelle erklärt jede Zeile der Ausgabe.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.