Redigering av utskrifter

När man omvandlar tal till text (som man typiskt gör vid utskrifter) så vill man ofta styra hur många decimaler som skall tas med, vilka positioner som skall används etc. Java innehåller flera kraftfulla möjligheter för detta som också inkluderar val av nationella konventioner (t ex decimalpunk eller decimalkomma). Här tar i bara upp formatering med en formatsträng som är mycket likt hur man gör t ex i Matlab och vissa andra programmeringsspråket.

I stället för att använda metoderna System.out.println och System.out.print ska vi använda metoden System.out.format och metoden String.format.

Metoden format

Med metoden format kan man påverka utskriften på många sätt, t ex antalet decimaler vid utskriften. Den metoden är mycket lik metoder som används i vissa andra programmeringsspråk som C och Matlab (där den kallas printf). Metoden format finns i System.out och i klassen String.
Exempel 1, med System.out:
double x = Math.sqrt(2.0); Exempel 2, med System.out:
int k = 32; Exempel 3, med System.out:
double x = Math.sqrt(2.0); int k = 32; Exempel 4, med System.out:
String g="Kim"; Exempel 5, forcera radbyte med \n
double x = Math.sqrt(2.0); int k = 32; Exempel 6, med klassen String, där vi lagrar resultatet i en String-variabel och därefter skriver ut denna String-variabel::
double x = Math.sqrt(2.0); int k = 32;
String res = String.format("%s %f %s %d", "x=",x,"k=",k); Sammanfattning, olika sätt att formatera
String-formattering
"%s"Formatterar en sträng med så många tecken som är nödvändiga
"%15s"Formatterar över 15 positioner, högerjusterat
"%-15s"Formatterar över 15 positioner, vänsterjusterat
Integer-formattering
"%d"Formatterar med så många positioner som är nödvändiga
"%15d"Formatterar över 15 positioner, högerjusterat
"%-15d"Formatterar över 15 positioner, vänsterjusterat
Flyttals-formattering
"%f"Formatterar med så många positioner som är nödvändiga, alltid sex decimaler
"%.2f"Formatterar så många siffror som är nödvändiga, 2 decimaler, högerjusterat.
"%10.2f"Formatterar över 10 positioner, 2 decimaler, vänsterjusterat

Valid CSS!