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