korábban látta a használatát a print
és println
módszerek nyomtatás húrok standard kimenet (System.out
). Mivel az összes számot karakterláncokká lehet alakítani (amint azt később látni fogja ebben a leckében), ezekkel a módszerekkel tetszőleges karakterláncok és számok keverékét nyomtathatja ki., A Java programozási nyelvnek azonban más módszerei is vannak, amelyek lehetővé teszik, hogy sokkal nagyobb ellenőrzést gyakoroljon a nyomtatási kimenet felett, amikor a számok szerepelnek.
a printf és formázási módszerek
a java.io
a csomag tartalmaz egy PrintStream
osztályt, amely két formázási módszerrel rendelkezik, amelyeket a print
és println
. Ezek a módszerek, format
és printf
egyenértékűek egymással., Az ismerős System.out
, hogy már használja történik, hogy egy PrintStream
objektum, így hivatkozhat PrintStream
módszerek System.out
. Így használhatja a format
vagy printf
bárhol a kódjában, ahol korábban a print
vagy println
., Például:
System.out.format(.....);
a két java.io.PrintStream
módszer szintaxisa ugyanaz:
public PrintStream format(String format, Object... args)
ahol egy karakterlánc, amely meghatározza a használni kívánt formázást, a args
pedig a formázással nyomtatandó változók listája. Egy egyszerű példa lenne
az első paraméter, format
, egy formátum karakterlánc, amely meghatározza, hogy a tárgyak a második paraméter, args
, kell formázni., A formátum karakterlánc egyszerű szöveget, valamint formátum-meghatározókat tartalmaz, amelyek speciális karakterek, amelyek a Object... args
argumentumait formázzák. (A Object... args
jelölést varargs-nak hívják, ami azt jelenti, hogy az argumentumok száma változhat.)
Format specifiers begin with a percent sign ( % ) and end with a converter. A konverter egy karakter, amely jelzi a formázandó argumentum típusát. A százalékjel (%) és a konverter között választható zászlók és specifikátorok is lehetnek., Sok konverter, jelző és specifikátor van, amelyek a java.util.Formatter
itt van egy alapvető példa:
int i = 461012;System.out.format("The value of i is: %d%n", i);
a %d
meghatározza, hogy az egy változó tizedes egész szám. A %n
platformfüggetlen newline karakter. A kimenet:
The value of i is: 461012
a printf
és format
a módszerek túlterheltek., Minden változat a következő szintaxis:
public PrintStream format(Locale l, String format, Object... args)
nyomtatás számok a francia rendszer (ahol egy vessző használt helyett a tizedes, a magyar képviselet, a lebegőpontos számok), például használni:
Példa
Az alábbi táblázat a konverterek, zászlókkal, hogy használják a minta program, TestFormat.java
, hogy a következő táblázat.,
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 | a date & time conversionlocale-specifikus teljes neve hónap. | |
td, te | a date & time conversion2 számjegyű nap a hónapban. td vezető nullák szükség, te nem. | |
ty, tY | a date & time conversionTY = 2 számjegyű év, TY = 4 számjegyű év. | |
tl | a date & time conversionhour in 12-hour clock., | |
tM | a date & time conversionperc 2 számjegyből, a vezető nullák szükség szerint. | |
tp | a date & time conversionlocale-specific am / pm (lower case). | |
tm | Egy dátum & idő átalakításhónapot 2 számjeggyel, vezető nulla, ha szükséges., | |
tD | A date & time conversiondate 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 | tíz karakter széles, jobb indokolt, három helyen tizedes pont után. |
a következő program a format
formázás egy részét mutatja. A kimenet látható dupla idézetek a beágyazott megjegyzés:
format
és printf
módszerek. További részletek az alapvető nyomvonal Basic I/O
szakaszában, a “formázás” oldalon találhatók.,a
String.format
karakterláncok létrehozásához karakterláncok tartoznak. A DecimalFormat osztály
használhatja a java.text.DecimalFormat
osztály, hogy ellenőrizzék a kijelző vezető és záró nullák, előtagok és utótagok, csoportosítás (ezer) elválasztók, és a tizedes elválasztó. DecimalFormat
nagy rugalmasságot kínál a számok formázásában, de összetettebbé teheti a kódot.,
a következő példa létrehoz egyDecimalFormat
objektumot,myFormatter
, egy minta karakterlánc átadásával aDecimalFormat
konstruktornak., A format()
módszer, amely DecimalFormat
örökli a NumberFormat
, aztán által hivatkozott myFormatter
elfogadja double
érték argumentumként, majd visszatér a formázott száma egy string:
Itt egy példa programot, amely bemutatja a használatát DecimalFormat
:
A kimenet:
123456.789 ###,###.### 123,456.789123456.789 ###.## 123456.79123.78 000000.000 000123.78012345.67 $###,###.### $12,345.67
Az alábbi táblázat magyarázza, hogy minden sor a kimenetet.