Javaでの出力の間隔

グラフィカルユーザーインターフェイスのないJavaプログラムは、コンピューターのコマンドラインを使用してユーザーと対話します。プログラムのコマンドライン出力は、ユーザーが理解できるように適切にフォーマットされ、間隔が空けられていることが重要です。ループを使用して手動で、またはJavaのFormatterクラスを介して、出力の間隔を空けることができます。

等幅フォント

等幅フォントは、各文字がフォント内の他の文字と同じ量のスペースを占めるフォントです。たとえば、等幅フォントでは、文字「i」は文字「m」と同じ量のスペースを占有します。WindowsコマンドラインやMacintoshターミナルなど、等幅フォントを使用する環境でJavaプログラムを実行すると、各行の文字数を数えることで、テキストを整理して列にフォーマットできます。

手動間隔

Javaで出力の間隔を適切に設定する最も簡単な方法は、手動の間隔を追加することです。たとえば、「i」、「j」、「k」の3つの異なる整数を、各整数の間にスペースを入れて出力するには、次のコードを使用します。

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

「i」、「j」、「k」の値がそれぞれ25、6、31の場合、プログラムは「25 631」を出力します。このメソッドの主な欠点は、各整数の文字数が考慮されていないことです。等間隔の列を3行印刷する場合、2番目の列は最初の2列と同じ幅にはなりません。次の行が値6、8、および2を保持している場合、列は完全にずれます。

フォーマッターの間隔

JavaのFormatterクラスを使用すると、データを出力する前にフォーマットできます。フォーマッタを使用すると、値の最大幅を定義できます。次に、フォーマッタは値に空のスペースを自動的に埋めて、同じ幅になるようにします。同じフォーマットオプションで複数の値を出力する場合、それらが出力行の同じスペースを占めるようにすることができます。フォーマットされたテキストセグメントの出力は簡単です。「System.out.print()」を使用するのではなく、「System.out.format()」を使用してください。 formatメソッドは、printメソッドが使用する単一の入力ではなく2つの入力を取ります。最初の入力は出力に適用する必要のあるフォーマットを表す文字列であり、2番目の入力は出力自体です。それぞれに最大3文字、間に1つのスペースがある3つの整数値を出力するには、次のコードを使用します。

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

フォーマット文字列の最初のセクションの「%4」は、プログラムが各整数を出力するために4文字を使用する必要があることを示します。整数の長さが2文字しかない場合、他の2文字は空白になります。フォーマット文字列の「d」は、出力値が10進整数であることを示します。コードの最後の行「System.out.println()」は、カーソルを次のコード行に移動します。

ループ間隔

Formattingクラスには、出力フォーマットの定義に使用される文字列に関する広範な知識が必要です。ただし、代わりにループの組み合わせを使用して、複雑なフォーマット文字列を必要とせずに、より複雑な間隔を実現できます。ループは、複数の文字列間の間隔を均等にしようとするときに特に役立ちます。たとえば、2つの文字列配列を取得し、2つのループを使用してその内容を2つの並列列に表示できます。最初のループは両方の配列を実行し、いずれかの配列で最も長い文字列の長さを見つけます。 2番目のループは再び配列を実行します。最初の配列から文字列を出力してから、いずれかの配列の最長の文字列の長さから最初の文字列の長さを差し引いて、次の列の前に配置する必要のあるスペースの数を調べます。次に、プログラムはその数のスペースを次のネストされたループで出力します。

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

正しい数のスペースを出力した後、2番目の文字列を出力します。これにより、Javaのフォーマッタを必要とせずに2つの等間隔の文字列列が作成されます。