Ich suche, die Ausgabe dieses Codes zu formatieren, so dass die Summen der Zeilen und Spalten neben/unter der Reihe/Spalte erscheinen. Ich bekomme die Zahlen korrekt, aber Leerzeichen und Anzahl der Zeichen scheinen zu unberechenbar zu sein, um sie korrekt für jedes Quadrat zu formatieren. Hier ist der Code, den ich derzeit habe.Dieses magische Quadrat formatieren
public void printSquare()
{
for (int x = 0; x < square.length; x ++)
{
System.out.println();
for (int j = 0; j < square.length; j++)
{
System.out.print(" " + square[x][j]);
}
System.out.println(" | " + sumRow(x));
}
System.out.print(sumOtherDiag());
for (int x = 0; x < square.length; x ++)
{
System.out.print(" ^");
}
System.out.println(sumMainDiag());
for (int x = 0; x < square.length; x ++)
{
System.out.print(" " + sumCol(x));
}
}
Und die Ausgabe dafür ist ..
8 1 6 | 15
3 5 7 | 15
4 9 2 | 15
15 ^^ ^15
15 15 15
Gibt es Strategien, um zuverlässiger so etwas wie dieses formatiert werden?
http://StackOverflow.com/Questions/22416578/How-to-use-string-format-in-java Verwenden Sie 'String.format', da Sie damit Abstände in fester Breite erzielen können. – Compass
Die andere Sache, die Sie tun könnten: Es beginnt wahrscheinlich mit der Tatsache, dass "8" ist ein Char weniger als "15" ... so könnten Sie auch Ihre einstelligen Zahlen als "08" zum Beispiel drucken. Dann müssen Sie sich weniger Gedanken über Abstände machen. Aber wenn Sie herausfinden, wie man mit führenden Nullen "formatiert", könnten Sie auch mit einem zusätzlichen Leerzeichen formatieren ... – GhostCat