Java-Ausgabe rechtsbündig machen?

Screenshot der Ausgabe - (programmieren, Java)

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

da scheint es nicht viel leute bei GF zu geben, die richtig java können, ich auch nicht. aber:

dein problem ist, dass du mit \t = tabulator versuchst zu tabellieren (ist ja naheliegend). aber ein tabsprung richtet sich im 8-er raster aus. im jahr 8 ist der betrag so klein, dass die vorherige 8-er spalte genommen wird. 

nicht gut. soweit ich gesehen habe, funktion system.out.printf (fast?) genauso wie printf in C.

wie schon bemerkt, hast du ja die rechtsausrichtung schon mit der myform bewerkstelligt, es gibt dir einen string mit fester länge von 9 zurück.

die laufende ausgabe machst du also mit:

System.out.printf("%d. Jahr %9s %9s %9s\n", 
jahresZaehler,
myFormat.format(rateJahr),
myFormat.format(zinsenMonat),
myFormat.format(aktuellesVermoegen);

die anzahl blanks vor und hinter den %9s sind hier willkürlich, dies und die überschrift musst du noch anpassen.


chr0m92 
Beitragsersteller
 04.10.2015, 21:35

wow, das funktioniert.

Könntest Du mir jetzt mal genau erklären was genau ich da gemacht habe? was ist 9 (wahrscheinlich irgendne Stellenanzahl) und was ist s..(vllt string?!)

Danke!

0
maximilianus7  04.10.2015, 22:40
@chr0m92

nun, die 9 ist die länge deines format-strings 

"##,000.00"

die %-sequenzen, werden stück für stück durch den jeweiligen nächsten parameter von printf ersetzt. und die %-seqs müssen zum typ des parameters passen: %d (=decimal ) ganzzahl numerisch, %s = string, %20s = string linksbündig mit fester länge,  %f (=float) gleitkomma, etc. - unsauber, aber praktisch.

ansonsten die beschreibung von printf nachschlagen, googeln.

0

Auf Groß-/Kleinschreibung achten %f,

Aber du verwendest doch schon die Formatter-Klasse, da sollte doch eine Parameter "rechtsbündig" sein: "#1.00" (so ähnlich, mit 2 Nachkommastellen)

Gegooglet habe ich ja schon...aber es klappt bei mir nicht.

Das ich irgendwas mit %5d oder %6f machen muss weiss ich mittlerweile..aber wenn ich das mache kommt immer das:

Ausgabe - (programmieren, Java)