2

Java では、printf を使用して文字列の末尾にスペースを追加し、コマンド ラインですべての文字列が同じ長さになるようにする方法はありますか。

レコードを返すプログラムがありますが、そのように表示する必要があります...

 Bob          27     007895
 Christopher  32     007856

基本的に、列がすべて整列するように、各名前を 30 文字までにしたいと考えています。現時点では、文字列の最後にあるタブを使用して列を作成していますが、すべての列が整列しない原因となる名前がいくつかあります (クリストファーもその 1 つです)。これをする?

System.out.print(Bob.getName() + "\t");
System.out.print(Bob.getAge() + "\t");
Sstem.out.print(Bob.getRegnumber() + "\t");
System.out.print(Chris.getName() + "\t");
System.out.print(Chris.getAge() + "\t");
Sstem.out.print(Chris.getRegnumber() + "\t");

GUIを使用せずにコマンドラインに出力しています。

乾杯

4

3 に答える 3

4

これは、さまざまな printf シンボルとその使用方法をまとめたチート シートです。

各フィールドに特定の最大サイズを指定して、すべてのフィールドが整列するようにします。最大サイズを指定しないと、再びずれが生じます。

したがって、次のような形式が必要です: "%-30.30s %8d %8d\n"

最後のフィールドが整数ではなく文字列の場合、「%-30.30s %8d %10.10s\n」のようなものが必要になります。

「%-30.30s」は、左詰めで最大 30 文字を出力します。"%10.10s" は、右詰めで最大 10 文字を出力します。

于 2012-10-22T11:26:16.223 に答える
3
System.out.printf( "%30s %d %d", Bob.getName(), Bob.getAge(), Bob.getRegnumber() );
于 2012-10-22T11:17:21.750 に答える
0

最大数を見つける必要があります。文字の、名前列が持つ必要があります。

印刷する前に、すべての値を取得し、最大の長さを見つけて、それに応じて幅を作成します。

于 2012-10-22T11:19:20.130 に答える