Tidligere du så bruk av print
og println
metoder for utskrift av strenger til standard output (System.out
). Siden alle tall kan konverteres til strenger (som du vil se senere i denne leksjonen), kan du bruke disse metodene til å skrive ut en tilfeldig blanding av strenger og tall., Java programmeringsspråk har andre metoder, men, som tillater deg å trene mye mer kontroll over dine print output når tallene er inkludert.
printf format og Metoder
java.io
pakken inkluderer en PrintStream
klassen som har to formatering metoder som du kan bruke til å erstatte print
og println
. Disse metodene, format
og printf
, er tilsvarende en annen., Den velkjente System.out
at du har brukt skjer for å være en PrintStream
objektet, slik at du kan bruke PrintStream
metoder på System.out
. Dermed kan du bruke format
eller printf
hvor som helst i koden din der hvor du har vært ved hjelp av print
eller println
., For eksempel,
System.out.format(.....);
syntaksen for disse to java.io.PrintStream
metodene er de samme:
public PrintStream format(String format, Object... args)
der format
er en streng som angir formatering til å bli brukt, og args
er en liste av variabler som skal skrives ut ved hjelp av at formatering. Et enkelt eksempel vil være
Den første parameteren, format
, er et format string angir hvordan objekter i den andre parameteren, args
, er å være formatert., Formatet streng som inneholder ren tekst samt format specifiers, som er spesialtegn som format argumenter Object... args
. (Notasjonen Object... args
kalles varargs, noe som betyr at antall argumenter kan variere.)
Format specifiers begynner med et prosenttegn (%) og avslutte med en omformer. Det converter er et tegn som indikerer type argument for å være formatert. I mellom prosenttegn (%) og converter, kan du ha det ekstra flagg og specifiers., Det er mange omformere, flagg, og specifiers, som er dokumentert i java.util.Formatter
Her er et enkelt eksempel:
int i = 461012;System.out.format("The value of i is: %d%n", i);
%d
angir at de enkelt variabel er et heltall. %n
er en plattform-uavhengig newline karakter. Produksjonen er:
The value of i is: 461012
printf
og format
metodene er overbelastet., Hver har en versjon med følgende syntaks:
public PrintStream format(Locale l, String format, Object... args)
for Å skrive ut tall i det franske system (hvor et komma er brukt i stedet for desimal-plass i den engelske representasjon av flyttall), for eksempel, kan du bruke:
Et Eksempel på
Den følgende tabellen viser noen av de besøkende som konverterer og flagg som er brukt i eksempel program, TestFormat.java
, som følger etter 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 | dato & tid konverteringlocale-spesifikke fullt navn av måneden. | |
td, te | dato & tid konvertering2-sifret dag av måneden. td har ledende nuller som nødvendig, te ikke. | |
ty, tY | dato & tid konverteringty = 2-sifret år, tY = 4-sifret år. | |
tl | dato & tid konverteringtime i 12-timers klokke., | |
tM | dato & tid konverteringminutter i 2 sifre, med ledende nuller som er nødvendig. | |
tp | dato & tid konverteringlocale-spesifikke am/pm (små bokstaver). | |
tm | dato & tid konverteringmåneder i 2 sifre, med ledende nuller som er nødvendig., | |
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, høyrejustert, med tre steder etter desimaltegnet. |
følgende program som viser noen av de formatering som du kan gjøre med format
. Resultatet er vist i doble anførselstegn i den innebygde kommentar:
format
og printf
metoder. Ytterligere detaljer kan bli funnet i Basic I/O
– delen av Avgjørende trail, i «Formatering» side.,Med
String.format
for å lage strenger er dekket i Strenger. DecimalFormat Klasse
Du kan bruke java.text.DecimalFormat
klassen til å kontrollere visningen av ledende og etterfølgende nuller, prefikser og suffikser, gruppering (i tusen) separatorer, og desimalskilletegn. DecimalFormat
tilbyr stor fleksibilitet i formatering av tall, men det kan gjøre koden mer komplekse.,
eksemplet som følger skaper en DecimalFormat
objekt, myFormatter
, ved å sende et mønster strengen til DecimalFormat
constructor., format()
metode, som DecimalFormat
arver fra NumberFormat
, deretter startet av myFormatter
det aksepterer en double
verdi som et argument, og returnerer formatert nummer i en streng:
Her er et eksempel på et program som illustrerer bruk av DecimalFormat
:
output er:
123456.789 ###,###.### 123,456.789123456.789 ###.## 123456.79123.78 000000.000 000123.78012345.67 $###,###.### $12,345.67
Den følgende tabellen forklarer hver linje av produksjonen.