Formátování Číselných Tiskový Výstup

Formátování Číselných Tiskový Výstup

Dříve jsi viděl používání print println metody pro tisk řetězce na standardní výstup (System.out). Protože všechna čísla lze převést na řetězce (jak uvidíte později v této lekci), můžete použít tyto metody vytisknout libovolný směs řetězců a čísel., Programovací jazyk Java má však jiné metody, které vám umožňují vykonávat mnohem větší kontrolu nad tiskovým výstupem, když jsou zahrnuta čísla.

printf a formát Metody

java.io balení obsahuje PrintStream třídu, která má dvě metody formátování, které můžete použít k nahradit print println. Tyto metody, format a printf, jsou navzájem rovnocenné., Známé System.out, které jste používali stane být PrintStream objekt, takže si můžete vyvolat PrintStream metody System.out. Tak, můžete použít format nebo printf kdekoli v kódu, kde jste dříve používali print nebo println., Například,

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

syntaxe pro tyto dva java.io.PrintStream metody je stejný:

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

kde format je řetězec, který určuje formátování mají být použity, a args je seznam proměnných, které mají být vytištěny pomocí formátování. Jednoduchý příklad by mohl být

první parametr, format, je formátovací řetězec určující, jak se objekty v druhý parametr, args, musí být formátovány., Formátovací řetězec obsahuje prostý text, stejně jako specifikátory formátu, které jsou speciální znaky, které formát argumenty Object... args. (Zápis Object... args se nazývá varargs, což znamená, že počet argumentů se může lišit.)

specifikátory formátu začínají znaménkem procenta ( % ) a končí převodníkem. Převodník je znak označující typ argumentu, který má být formátován. Mezi znaménkem procenta ( % ) a převodníkem můžete mít volitelné příznaky a specifikátory., Existuje mnoho konvertory, vlajky, a specifikátory, které jsou popsány v java.util.Formatter

Zde je základní příklad:

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

%d určuje, že jedna proměnná je desítkové celé číslo. %n je nový řádek nezávislý na platformě. Výstup je:

The value of i is: 461012

printf format metody jsou přetížené., Každý má verzi s následující syntaxí:

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

Pro tisk čísla ve francouzském systému (kde se používá čárka místo desetinné místo v anglické reprezentaci čísla s plovoucí desetinnou čárkou), například, měli byste použít:

Příklad

V následující tabulce jsou uvedeny některé z měniče a vlajky, které jsou použity v programu vzorku, TestFormat.java, který následuje v tabulce.,

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 datum & čas konverze—locale-specific plné jméno měsíce.
td, te a date & time conversion-2-místný den v měsíci. td má podle potřeby vedoucí nuly, te ne.
ty, tY datum & čas konverze—ty = 2-místný rok, tY = 4 číslice roku.
tl a date & time conversion-hour in 12-hour clock.,
tM a date & time conversion-minutes in 2 číslice, s předními nulami podle potřeby.
tp datum & čas konverze—locale-specific am/pm (malá písmena).
tm datum & čas konverze—měsíce v 2 číslice, úvodní nuly, jak je třeba.,
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 deset znaků na šířku, vpravo, se třemi místy za desetinnou čárkou.

následující program ukazuje některé formátování, které můžete dělat s format. Výstup je uveden v uvozovkách ve vloženém komentář:

Poznámka: diskuse v této části se vztahuje jen základy format printf metody. Další podrobnosti naleznete v sekciBasic I/O na stránce „formátování“.,
použití String.format pro vytvoření řetězců je pokryto řetězci.

DecimalFormat Třídy

můžete použít java.text.DecimalFormat třídy k ovládání zobrazení počáteční a koncové nuly, předpon a přípon, seskupení (v tisících) oddělovač a oddělovač desetinných míst. DecimalFormat nabízí velkou flexibilitu při formátování čísel,ale může váš kód zkomplikovat.,

následující příklad vytvoří DecimalFormat objekt, myFormatter, předáním řetězec vzorku do DecimalFormat konstruktoru., format() způsob, jakým DecimalFormat dědí z NumberFormat, je pak vyvolána tím myFormatter—přijímá double hodnotu jako argument a vrací formátované číslo na řetězec:

Tady je ukázkový program, který ukazuje použití DecimalFormat:

výstup:

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

následující tabulka vysvětluje každý řádek výstupu.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *