numerieke printuitvoer opmaken

numerieke printuitvoer opmaken

eerder zag u het gebruik van de print en println methoden voor het afdrukken van tekenreeksen naar standaarduitvoer (System.out). Omdat alle getallen kunnen worden geconverteerd naar tekenreeksen (zoals u later in deze les zult zien), kunt u deze methoden gebruiken om een willekeurig mengsel van tekenreeksen en getallen af te drukken., De programmeertaal Java heeft echter andere methoden die u in staat stellen om veel meer controle uit te oefenen over uw printuitvoer wanneer nummers zijn opgenomen.

de printf-en opmaakmethoden

de java.io het pakket bevat een PrintStream klasse die twee opmaakmethoden heeft die u kunt gebruiken om print en printlnte vervangen. Deze methoden, format en printf, zijn gelijkwaardig aan elkaar., Het bekende System.out dat u gebruikt is een PrintStream object, zodat u PrintStream methoden kunt aanroepen op System.out. U kunt dus format of printf overal in uw code gebruiken waar u eerder print of printlnhebt gebruikt., Bijvoorbeeld:

System.out.format(.....);

de syntaxis voor deze twee java.io.PrintStream

public PrintStream format(String format, Object... args)

waarbijformatis een tekenreeks die de te gebruiken opmaak specificeert en args is een lijst van de variabelen die met die opmaak moeten worden afgedrukt. Een eenvoudig voorbeeld is

de eerste parameter, format, is een format string die aangeeft hoe de objecten in de tweede parameter, args, moeten worden opgemaakt., De opmaakstring bevat platte tekst en opmaakspecificaties, dit zijn speciale tekens die de argumenten van Object... argsformatteren. (De notatie Object... args wordt varargs genoemd, wat betekent dat het aantal argumenten kan variëren.)

Formaatspecificaties beginnen met een procentteken ( % ) en eindigen met een converter. De converter is een teken dat het type argument aangeeft dat moet worden geformatteerd. Tussen het procentteken ( % ) en de converter kunt u optionele vlaggen en specificaties hebben., Er zijn veel converters, flags en specifiers, die gedocumenteerd zijn in java.util.Formatter

Hier is een basisvoorbeeld:

int i = 461012;System.out.format("The value of i is: %d%n", i);

de %dgeeft aan dat de enkele variabele een decimaal geheel is. De %n is een platform-onafhankelijk newline teken. De uitvoer is:

The value of i is: 461012

De printfenformatmethoden zijn overbelast., Elke versie heeft de volgende syntaxis:

public PrintStream format(Locale l, String format, Object... args)

om getallen af te drukken in het Franse systeem (waar een komma wordt gebruikt in plaats van de decimaal in de Engelse weergave van floating point getallen), bijvoorbeeld, zou u gebruik maken van:

een voorbeeld

de volgende tabel toont enkele van de converters en vlaggen die worden gebruikt in het voorbeeldprogramma, TestFormat.java, dat volgt op de tabel.,

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 a date & time conversion—locale-specific full name of month.
td, te a date & tijdconversie—2-cijferige dag van de maand. td heeft voorloopnullen als dat nodig is, te Niet.
ty, tY a date & tijdconversie—ty = 2-cijferig jaar, tY = 4-cijferig jaar.
tl a date & tijdconversie—uur in 12-uursklok.,
tM a date & tijdconversie—minuten in 2 cijfers, met voorloopnullen indien nodig.
tp a date & tijdconversie—lokale-specifieke am/pm (kleine letters).
tm a date & tijdconversie—maanden in 2 cijfers, met voorloopnullen indien nodig.,
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 tien tekens in de breedte, rechts uitgelijnd, met drie plaatsen na de komma.

het volgende programma toont enkele opmaak die u kunt doen met format. De uitvoer wordt weergegeven tussen dubbele aanhalingstekens in de ingebedde opmerking:

opmerking: de discussie in deze paragraaf behandelt alleen de basis van de format en printf methoden. Meer details zijn te vinden in de Basic I/O sectie van het Essential trail, in de” Formatting ” pagina.,
het gebruik van String.format om tekenreeksen aan te maken is bedekt met tekenreeksen.

de DecimalFormat-Klasse

u kunt dejava.text.DecimalFormat – Klasse gebruiken om de weergave van voor-en achterliggende nullen, voorvoegsels en achtervoegsels, groepeer (duizenden) scheidingstekens en het decimale scheidingsteken te beheren. DecimalFormat biedt veel flexibiliteit bij het formatteren van getallen, maar het kan uw code complexer maken.,

het volgende voorbeeld maakt een DecimalFormat object, myFormatter, door een patroonstring door te geven aan de DecimalFormat constructor., De format() methode DecimalFormat erft van NumberFormat“, wordt dan aangeroepen door myFormatter—het accepteert double waarde als argument en retourneert de opgemaakte aantal in een string:

Hier is een voorbeeld van een programma dat illustreert het gebruik van DecimalFormat:

De uitvoer is:

123456.789 ###,###.### 123,456.789123456.789 ###.## 123456.79123.78 000000.000 000123.78012345.67 $###,###.### $12,345.67

De volgende tabel legt uit elke regel van de output.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *