formázás numerikus nyomtatási kimenet

formázás numerikus nyomtatási kimenet

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.,

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 a date & time conversion—locale-specifikus teljes neve hónap.
td, te a date & time conversion—2 számjegyű nap a hónapban. td vezető nullák szükség, te nem.
ty, tY a date & time conversion—TY = 2 számjegyű év, TY = 4 számjegyű év.
tl a date & time conversion—hour in 12-hour clock.,
tM a date & time conversion—perc 2 számjegyből, a vezető nullák szükség szerint.
tp a date & time conversion—locale-specific am / pm (lower case).
tm Egy dátum & idő átalakítás—hónapot 2 számjeggyel, vezető nulla, ha szükséges.,
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 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:

megjegyzés: a vita ebben a szakaszban kiterjed csak az alapokat a 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.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük