Formatering Numeriske Udskrivning

Formatering Numeriske Udskrivning

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

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 en dato & tidskonvertering—locale-specifikt fulde navn på måneden.
td, te en dato & tid konvertering—2-cifret dag i måneden. td har førende nuller efter behov, te gør det ikke.
ty, tY a date & tidskonvertering—ty = 2-cifret år, tY = 4-cifret år.
tl En dato & tid konvertering—time i 12-timers ur.,
TM a date & tid konvertering—minutter i 2 cifre, med førende nuller efter behov.
tp a date & tidskonvertering—locale-specifik am / pm (små bogstaver).
TM a date & tid konvertering—måneder i 2 cifre, med førende nuller efter behov.,
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 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:

Bemærk: diskussionen i dette afsnit dækker kun det grundlæggende iformatogprintf 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 etDecimalFormatobjekt,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.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *