Formatare Numerică de Imprimare de Ieșire

Formatare Numerică de Imprimare de Ieșire

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

o dată & conversia timpului—minute în 2 cifre, cu zerouri de conducere după cum este necesar.

o dată & conversia timpului—luni în 2 cifre, cu zerouri de conducere după cum este necesar.,

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 o dată& timp de conversie—locale specifice numele complet al lunii.
td, te o dată& conversia timpului—ziua de 2 cifre a lunii. td are zerouri de conducere după cum este necesar, te nu.
ty, tY o dată& conversia timpului—ty = anul de 2 cifre, ty = anul de 4 cifre.
tl o dată& conversia timpului—oră în ceas de 12 ore.,
tM
tp o dată& timp de conversie—locale specifice am / pm (minuscule).
tm
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 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:

Notă: discuții în această secțiune se referă doar la elementele de bază ale 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.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *