mai Devreme ați văzut utilizarea print
și println
metode de imprimare siruri de caractere de ieșire standard (System.out
). Deoarece toate numerele pot fi convertite în șiruri de caractere (după cum veți vedea mai târziu în această lecție), puteți utiliza aceste metode pentru a imprima un amestec arbitrar de șiruri și numere., Limbajul de programare Java are însă alte metode care vă permit să exercitați mult mai mult control asupra ieșirii dvs. de imprimare atunci când sunt incluse numere.
printf și format Metode
java.io
pachetul include PrintStream
clasa care are două metode de formatare pe care le puteți folosi pentru a înlocui print
și println
. Aceste metode, format
și printf
, sunt echivalente una cu alta., Familiar System.out
care au fost utilizați se întâmplă să fie un PrintStream
obiect, astfel încât să puteți invoca PrintStream
metode pe System.out
. Astfel, puteți folosi format
sau printf
oriunde în cod în cazul în care ați fost anterior folosind print
sau println
., De exemplu,
System.out.format(.....);
sintaxa pentru aceste două java.io.PrintStream
metode este aceeași:
public PrintStream format(String format, Object... args)
unde format
este un șir de caractere care specifică formatul pentru a fi utilizate și args
este o listă de variabile pentru a fi tipărite formatarea. Un exemplu simplu ar fi
primul parametru, format
, este un șir format care specifică modul în care obiectele din cel de-al doilea parametru, args
, urmează a fi formatate., Șirul de format conține text simplu, precum și specificatori de format, care sunt caractere speciale care formatează argumentele Object... args
. (Notația Object... args
se numește varargs, ceea ce înseamnă că numărul de argumente poate varia.)
specificatorii formatului încep cu un semn procentual (%) și se termină cu un convertor. Convertorul este un caracter care indică tipul de argument care trebuie formatat. Între semnul procent ( % ) și convertorul puteți avea steaguri opționale și specificatori., Există multe convertoare, steaguri, și proiectanti, care sunt documentate în java.util.Formatter
Aici este un exemplu de bază:
int i = 461012;System.out.format("The value of i is: %d%n", i);
%d
specifică faptul că singură variabilă este un număr întreg zecimal. %n
este un caracter newline independent de platformă. Rezultatul este:
The value of i is: 461012
printf
și format
metode sunt supraîncărcate., Fiecare are o versiune cu următoarea sintaxă:
public PrintStream format(Locale l, String format, Object... args)
Pentru a imprima numerele în sistemul francez (unde virgula este folosit în loc de virgulă în limba engleză reprezentarea numerelor în virgulă mobilă), de exemplu, le-ar folosi:
Un Exemplu
următorul tabel listează unele dintre convertoare și steaguri care sunt utilizate în programul de proba, TestFormat.java
, care urmează masa.,
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 | o dată& timp de conversielocale specifice numele complet al lunii. | |
td, te | o dată& conversia timpuluiziua de 2 cifre a lunii. td are zerouri de conducere după cum este necesar, te nu. | |
ty, tY | o dată& conversia timpuluity = anul de 2 cifre, ty = anul de 4 cifre. | |
tl | o dată& conversia timpuluioră în ceas de 12 ore., | |
tM | ||
tp | o dată& timp de conversielocale specifice am / pm (minuscule). | |
tm | ||
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 | zece caractere în lățime, dreapta justificată, cu trei locuri după punctul zecimal. |
următorul program arată unele de formatare pe care le puteți face cu format
. Rezultatul este arătat în ghilimele duble în încorporate comentariu:
format
și printf
metode. Mai multe detalii pot fi găsite în secțiunea Basic I/O
a traseului esențial, în pagina” formatare”.,folosind
String.format
pentru a crea siruri de caractere este acoperit în siruri de caractere. clasa Zecimalformat
puteți utiliza clasa java.text.DecimalFormat
pentru a controla afișarea zerourilor, prefixelor și sufixelor, separatoarelor de grupare (mii) și separatorului zecimal. DecimalFormat
oferă o mare flexibilitate în formatarea numerelor, dar poate face Codul mai complex.,
exemplul care urmează creează un DecimalFormat
obiect, myFormatter
, prin care trece un șir model la DecimalFormat
constructor., format()
metoda, care DecimalFormat
moștenește de la NumberFormat
, este apoi invocat de myFormatter
acceptă un double
valoare ca argument și returnează formatat număr într-un șir:
Aici este un exemplu de program care ilustrează utilizarea DecimalFormat
:
rezultatul este:
123456.789 ###,###.### 123,456.789123456.789 ###.## 123456.79123.78 000000.000 000123.78012345.67 $###,###.### $12,345.67
următorul tabel explică fiecare linie de ieșire.