Tidligere du så brug af print
og println
metoder til udskrivning af strenge til standard output (System.out
). Da alle tal kan konverteres til strenge (som du vil se senere i denne lektion), kan du bruge disse metoder til at udskrive en vilkårlig blanding af strygere og tal., Java programmeringssprog har dog andre metoder, der giver dig mulighed for at udøve meget mere kontrol over din udskriftsudgang, når tal er inkluderet.
printf format og Metoder
java.io
pakke indeholder et PrintStream
klasse, der har to formatering metoder, som du kan bruge til at erstatte print
og println
. Disse metoder, format
og printf
, svarer til hinanden., Den velkendte System.out
, som du har brugt sker for at være en PrintStream
objekt, så du kan påberåbe PrintStream
metoder på System.out
. Således, du kan bruge format
eller printf
et sted i din kode, hvor du tidligere har været ved hjælp af print
eller println
., For eksempel:
System.out.format(.....);
syntaks for disse to java.io.PrintStream
metoder er den samme:
public PrintStream format(String format, Object... args)
hvor format
er en streng, der angiver den formatering, der skal anvendes, og args
er en liste over de variabler, som skal udskrives, ved hjælp af, at formatering. Et simpelt eksempel ville være
den første parameter, format
, er en formatstreng, der angiver, hvordan objekterne i den anden parameter, args
, skal formateres., Formatstrengen indeholder almindelig tekst såvel som formatspecifikationer, som er specialtegn, der formaterer argumenterne for Object... args
. (Notationen Object... args
kaldes varargs, hvilket betyder, at antallet af argumenter kan variere.)
Format beregnere begynde med en procent tegn (%) og slutter med en konverter. Konverteren er et tegn, der angiver den type argument, der skal formateres. I mellem procent tegn ( % ) og konverteren kan du have valgfri flag og beregnere., Der er mange omformere, flag, og beregnere, som er dokumenteret i java.util.Formatter
Her er en grundlæggende eksempel:
int i = 461012;System.out.format("The value of i is: %d%n", i);
%d
angiver, at de enkelt variabel er et decimalt heltal. %n
er en platformuafhængig ne .line-karakter. Output er:
The value of i is: 461012
printf
og format
metoder er overbelastet., Hver har en version med følgende syntax:
public PrintStream format(Locale l, String format, Object... args)
for At udskrive tal i det franske system (hvor et komma er brugt i stedet for decimal i den engelske repræsentation af floating point tal), for eksempel, ville du bruge:
Et Eksempel
Den følgende tabel viser nogle af de omformere og flag, som bruges i det sample program, TestFormat.java
, der følger efter tabellen.,
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 | en dato & tidskonverteringlocale-specifikt fulde navn på måneden. | |
td, te | en dato & tid konvertering2-cifret dag i måneden. td har førende nuller efter behov, te gør det ikke. | |
ty, tY | a date & tidskonverteringty = 2-cifret år, tY = 4-cifret år. | |
tl | En dato & tid konverteringtime i 12-timers ur., | |
TM | a date & tid konverteringminutter i 2 cifre, med førende nuller efter behov. | |
tp | a date & tidskonverteringlocale-specifik am / pm (små bogstaver). | |
TM | a date & tid konverteringmåneder i 2 cifre, med førende nuller efter behov., | |
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 | ti tegn i bredden, ret berettiget, med tre steder efter decimaltegn. |
Det følgende program viser nogle af de formateringsindstillinger, du kan gøre med format
. Output vises inden for dobbelt citater i den indlejrede kommentar:
format
ogprintf
metoder. Yderligere detaljer kan findes i afsnittet Basic I/O
på Essential trail på siden “formatering”.,Brug af
String.format
til at oprette strenge er dækket af strenge. decimal format-klassen
Du kan brugejava.text.DecimalFormat
– klassen til at kontrollere visningen af førende og efterfølgende nuller, præfikser og suffikser, gruppering (tusinder) separatorer og decimalseparatoren. DecimalFormat
tilbyder stor fleksibilitet i formatering af tal, men det kan gøre din kode mere kompleks.,
det følgende eksempel opretter etDecimalFormat
objekt,myFormatter
, ved at føre en mønsterstreng tilDecimalFormat
konstruktør., format()
metode, som DecimalFormat
arver fra NumberFormat
, er så påberåbes af myFormatter
det accepterer en double
værdi som argument og returnerer den formaterede tal i en streng:
Her er et eksempel program, der illustrerer brugen af DecimalFormat
:
output er:
123456.789 ###,###.### 123,456.789123456.789 ###.## 123456.79123.78 000000.000 000123.78012345.67 $###,###.### $12,345.67
Den følgende tabel forklares hver linje af produktionen.