formatering av numerisk Utskriftsutmatning

formatering av numerisk Utskriftsutmatning

Tidigare såg du användningen avprint ochprintln metoder för att skriva ut strängar till standardutmatning (System.out). Eftersom alla nummer kan konverteras till strängar (som du kommer att se senare i den här lektionen) kan du använda dessa metoder för att skriva ut en godtycklig blandning av strängar och nummer., Programmeringsspråket Java har dock andra metoder som gör att du kan utöva mycket mer kontroll över utskriften när siffror ingår.

printf och format metoder

java.io paketet innehåller enPrintStream klass som har två formateringsmetoder som du kan använda för att ersättaprint ochprintln. Dessa metoder,format ochprintf, motsvarar varandra., Det välbekantaSystem.out som du har använt råkar vara ettPrintStream – objekt, så att du kan anropaPrintStream – metoder påSystem.out. Således kan du användaformat ellerprintf var som helst i din kod där du tidigare har använtprint ellerprintln., Till exempel

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

syntaxen för dessa två java.io.PrintStream metoder är desamma:

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

där format är en sträng som anger vilken formatering som ska användas och

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

där format id = ”cb8d954505” > är en lista över de variabler som ska skrivas ut med den formateringen. Ett enkelt exempel skulle vara

den första parametern,format, är en formatsträng som anger hur objekten i den andra parametern,args, ska formateras., Formatsträngen innehåller oformaterad text samt formatspecificerare, som är specialtecken som formaterar argumenten för Object... args. (Notationen Object... args heter varargs, vilket innebär att antalet argument kan variera.)

Formatspecificerare börjar med ett procenttecken ( % ) och slutar med en omvandlare. Konverteraren är ett tecken som anger vilken typ av argument som ska formateras. Mellan procenttecknet ( % ) och konverteraren kan du ha valfria flaggor och specifierare., Det finns många omvandlare, flaggor och specifiers, som dokumenteras i java.util.Formatter

här är ett grundläggande exempel:

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

%d anger att den enskilda variabeln är ett decimaltal. %n är ett plattformsoberoende newline-tecken. Utgången är:

The value of i is: 461012

metoderna printf och format är överbelastade., Var och en har en version med följande syntax:

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

för att skriva ut siffror i det franska systemet (där ett kommatecken används i stället för decimalen i den engelska representationen av flyttal), skulle du till exempel använda:

ett exempel

Följande tabell listar några av de omvandlare och flaggor som används i provprogrammet, TestFormat.java, som följer tabellen.,

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 fullständigt namn på månaden.
td, te ett datum& tid konvertering—2-siffrig dag i månaden. td har ledande nollor efter behov, te gör det inte.
ty, tY ett datum& tid konvertering—ty = 2-siffrigt år, tY = 4-siffrigt år.
tl ett datum& tid konvertering—timme i 12-timmars klocka.,
tM ett datum& tidsomräkning—minuter i 2 siffror, med ledande nollor vid behov.
tp a date& time conversion—locale-specific am / pm (lower case).
tm ett datum& tidsomräkning—månader i 2 siffror, med ledande nollor vid behov.,
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 tio tecken i bredd, rätt motiverad, med tre platser efter decimalpunkt.

följande program visar en del av formateringen som du kan göra medformat. Utdata visas inom dubbla citattecken i den inbäddade kommentaren:

Obs! diskussionen i det här avsnittet täcker bara grunderna i metodernaformat ochprintf. Ytterligare detaljer finns i avsnittetBasic I/O I det väsentliga spåret, på sidan ”formatering”.,
att använda String.format för att skapa strängar är täckt av strängar.

klassen DecimalFormat

Du kan använda klassenjava.text.DecimalFormat för att styra visningen av ledande och avslutande nollor, prefix och suffix, gruppering (tusentals) separatorer och decimalseparator. DecimalFormat erbjuder stor flexibilitet i formateringen av siffror, men det kan göra din kod mer komplex.,

exemplet som följer skapar ettDecimalFormat – objekt,myFormatter, genom att skicka en mönsterstring till konstruktörenDecimalFormat., format()—metoden, som DecimalFormat ärver från NumberFormat, anropas sedan av myFormatter – den accepterar ett double – värde som ett argument och returnerar det formaterade numret i en sträng:

Här är ett exempelprogram som illustrerar användningen av DecimalFormat:

utdata är:

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

Följande tabell förklarar varje rad av utdata.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *