So formatieren Sie ein array mit printf() in Java?
Ich wissen, wie ich formatieren einzelne Variablen, aber ich weiß nicht, wie format ein array mit printf()
. Ich möchte meine Programm mit jeder Zahl-Futter mit einander vertikal, wobei jede Zahl in jeder Zeile die gleiche Anzahl von Leerzeichen. Unten ist ein Beispiel was ich meine mit unterschiedlichen zahlen:
1.1 2.2 3.3 4.4 5.5
1 2 3 4 5
Hier ist der code, ich habe versucht, um die Anzeige der zahlen:
//create array
String[] tempsArray2 = temps2.toArray(new String[0]);
//for-each loop
for(String ss : tempsArray2){
//display ss to make sure program works correctly
System.out.printf("%40s", ss);
Wenn ich es laufen lasse, zeigt das Programm, wie diesem:
run:
70.3 70.8 73.8 77.0 80.7 83.4 84.5 84.4 83.4 80.2 76.3 72.0
69 67 66 64 66 69 67 67 70 69 69 70BUILD SUCCESSFUL (total time: 0 seconds)
Wie kann ich dieses Problem beheben, so dass ich formatieren kann das ganze array einmal mit einem einzigen System.out.printf();
- Anweisung, oder muss ich formatieren Sie Sie eins nach dem anderen? Jede Hilfe wird sehr geschätzt.
- Können Sie uns sagen, welche dimension das array ist? Außerdem wissen Sie die maximale Länge einer Zahl in diesem array?
- Wenn dein array hat nur eine dimension wie genau planen Sie, teilen Sie die Ausgabe auf separaten Zeilen?
- Ich aktualisiert meine Antwort unten mit weitere nützliche Informationen zum ausrichten von Feldern.
- Warum sind Menschen-Abstimmung diese Frage, wenn es unklar ist, hat er nicht geantwortet auf Anfragen, es zu klären, und alle Antworten sind nur Vermutungen, weil dieser?
- Und jetzt sind Sie zu ignorieren, Kommentare und Antworten auf diese Frage, und wieder Fragen sich die gleiche Frage hier. Das ist nicht fair, die Leute haben Mühe, zu versuchen, Ihnen zu helfen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, dass bestimmte Kontrolle über die Formatierung, die Sie haben, um es zu tun jedes Element einzeln. Es ist
Arrays.toString()
werden, aber es bietet keine Kontrolle über individuelle Elemente.Wenn Sie das drucken von mehreren arrays und Sie wollen Ihren output auf "line up", werden Sie brauchen, um wählen Sie die Ausgabe-Formate, so dass passiert, z.B.:
Welche Ausgänge:
Dass Beispiel ist vielleicht nicht das genaue format, das Sie für gehen, aber der Punkt ist, Sie haben die Kontrolle auf diese Weise. Wenn Sie wollen, zu tun ist Linksbündig ausgerichtet, zahlen, größere Felder, wenn Ihre Typen sind Strings oder floats oder doubles oder ints, usw.
Manchmal hilft es, zu arbeiten, out-Feld Breite und Polsterung Räumen, z.B. in einem text-editor oder auf Papier zuerst. E. g. mit der obigen, wo wir versuchen, line-up hinter dem Komma und die Ziffern zwischen floats und Integer, wie ich den ersten arbeiten sich das format in einem fixed-width-editor (wie in einem Kommentar oder im Editor), z.B.:
Dann können Sie leichter sehen, wie das übersetzt, um Formatbezeichner:
FFF.FF
ist"%6.2f "
.III
ist"%3d "
.Finden Sie in der Dokumentation für
Formatter
für weitere Informationen über die format-codes, die Sie übergeben können, umSystem.out.printf()
.Angenommen, Sie arbeiten mit einem 2D-array gefüllt mit Doppelzimmer, können Sie etwas tun, wie diese, um gut formatierte Ausgabe:
Den
-
richtet die zahlen auf der linken und legt Sie alle in schöne Spalten. Die7
ist das Feld Breite und erzählt von printf (), wie weit, um Ihre Spalten. Die.3
ist die Genauigkeit der Ziffern (Dezimalstellen), die gedruckt werden. Schließlich, das f steht für float-format specifier für Doppelzimmer. Sie können sich die syntax für java-printf in der Dokumentation.