Abstand der Ausgabe in Java

Java-Programme ohne grafische Benutzeroberfläche verwenden die Befehlszeile eines Computers, um mit dem Benutzer zu interagieren. Es ist wichtig, dass die Befehlszeilenausgabe des Programms richtig formatiert und beabstandet ist, damit sie für den Benutzer verständlich ist. Sie können Ihre Ausgabe manuell mit Schleifen oder über die Formatter-Klasse von Java platzieren.

Monospaced Schriftarten

Monospaced-Schriftarten sind Schriftarten, bei denen jeder Buchstabe den gleichen Platz einnimmt wie die anderen Buchstaben in der Schriftart. Beispielsweise nimmt in einer monospaced Schriftart das Zeichen "i" den gleichen Platz ein wie das Zeichen "m". Wenn Sie Java-Programme in einer Umgebung mit monospaced Schriftarten wie der Windows-Befehlszeile oder dem Macintosh-Terminal ausführen, können Sie Ihren Text in übersichtlichen Spalten anordnen und formatieren, indem Sie die Anzahl der Zeichen in jeder Zeile zählen.

Manueller Abstand

Der einfachste Weg, um Ihre Ausgabe in Java richtig zu platzieren, ist das Hinzufügen manueller Abstände. Verwenden Sie beispielsweise den folgenden Code, um drei verschiedene Ganzzahlen "i", "j" und "k" mit einem Leerzeichen zwischen den einzelnen Ganzzahlen auszugeben:

System.out.println (i + "" + j + "" + k);

Wenn die Werte von "i", "j" und "k" 25, 6 bzw. 31 sind, gibt das Programm "25 6 31" aus. Der Hauptnachteil dieser Methode ist die fehlende Berücksichtigung der Anzahl der Zeichen in jeder Ganzzahl. Wenn Sie drei Zeilen mit gleichmäßig verteilten Spalten drucken, hat die zweite Spalte nicht die gleiche Breite wie die ersten beiden. Wenn die nächste Zeile die Werte 6, 8 und 2 enthält, sind die Spalten vollständig falsch ausgerichtet.

Formatiererabstand

Mit der Formatter-Klasse von Java können Sie Daten formatieren, bevor sie ausgegeben werden. Mit dem Formatierer können Sie die maximale Breite eines Werts definieren. Der Formatierer füllt den Wert dann automatisch mit Leerzeichen auf, um sicherzustellen, dass er dieselbe Breite hat. Wenn Sie mehrere Werte mit denselben Formatierungsoptionen ausgeben, können Sie sicherstellen, dass sie denselben Platz in der Ausgabezeile einnehmen. Die Ausgabe eines formatierten Textsegments ist einfach - anstatt "System.out.print ()" zu verwenden, verwenden Sie "System.out.format ()". Die Formatierungsmethode verwendet zwei Eingaben anstelle der einzelnen Eingabe, die die Druckmethode verwendet. Die erste Eingabe ist eine Zeichenfolge, die die Formatierung darstellt, die auf die Ausgabe angewendet werden soll, und die zweite Eingabe ist die Ausgabe selbst. Verwenden Sie den folgenden Code, um drei ganzzahlige Werte mit jeweils maximal drei Zeichen und einem Leerzeichen dazwischen zu drucken:

System.out.format ("% 4d", i); System.out.format ("% 3d", j); System.out.format ("% 3d", k); System.out.println ();

Das "% 4" im ersten Abschnitt der Formatzeichenfolge gibt an, dass das Programm vier Zeichen verwenden soll, um jede Ganzzahl zu drucken. Wenn die Ganzzahl nur zwei Zeichen lang ist, sind die anderen beiden Zeichen Leerzeichen. Das "d" in der Formatzeichenfolge gibt an, dass der Ausgabewert eine Dezimalzahl ist. Die letzte Codezeile "System.out.println ()" bewegt den Cursor zur nächsten Codezeile.

Schleifenabstand

Die Formatierungsklasse erfordert umfassende Kenntnisse der Zeichenfolgen, die zum Definieren des Ausgabeformats verwendet werden. Sie können jedoch stattdessen eine Kombination von Schleifen verwenden, um komplexere Abstände zu erzielen, ohne dass komplizierte Formatzeichenfolgen erforderlich sind. Schleifen sind besonders nützlich, wenn Sie versuchen, einen gleichmäßigen Abstand zwischen mehreren Zeichenfolgen zu erreichen. Sie können beispielsweise zwei Zeichenfolgenarrays verwenden und deren Inhalt mithilfe von zwei Schleifen in zwei parallelen Spalten anzeigen. Die erste Schleife durchläuft beide Arrays und ermittelt die Länge der längsten Zeichenfolge in beiden Arrays. Die zweite Schleife durchläuft die Arrays erneut. Es druckt die Zeichenfolge aus dem ersten Array und subtrahiert dann die Länge der ersten Zeichenfolge von der Länge der längsten Zeichenfolge in einem der Arrays, um herauszufinden, wie viele Leerzeichen vor der nächsten Spalte platziert werden müssen. Das Programm druckt dann diese Anzahl von Leerzeichen mit der folgenden verschachtelten Schleife:

für (int i = 0; i <numSpaces; i ++) {System.out.print (""); }}

Nach dem Drucken der richtigen Anzahl von Leerzeichen wird die zweite Zeichenfolge gedruckt. Dadurch werden zwei gleichmäßig verteilte Spalten mit Zeichenfolgen erstellt, ohne dass Java Formatter erforderlich ist.