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... argsargumentumait 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 myFormatterelfogadja 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.