2

データの長さが変化する可能性のある表形式のデータがあるとしますが、パディングを自動調整するためのFormatterクラスのプロビジョニングはありますか?

したがって、これの代わりに(列Aに注意):

columnA    columnB     
1            34.34          
10            34.34
100            34.34          
1000            34.34

あなたはこれを手に入れます(列Bに注意してください):

columnA    columnB     
1            34.34          
10           34.34
100          34.34          
1000         34.34

これまでのところ、%5s%5sの間のスペースのみを含むこれを試しましたが、これらは静的であり、希望する結果を生成するように調整されていません。%5sの5は5スペースを自動パディングするという印象を受けました

Formatter formatter = new Formatter();
formatter.format("%5s     %5s", columnAdata, columnBdata);
4

1 に答える 1

7

それは間違いなく可能です。私がすぐに知っている方法は、最初の列のデータの最小幅を構成することです。これを行うには、width属性を左寄せと組み合わせて使用​​します(どちらもJavadocに記載されています)。ここから始めましょう:

System.out.printf("%-10d %d%n", 1, 100);
System.out.printf("%-10d %d%n", 10, 100);
System.out.printf("%-10d %d%n", 100, 100);

これは以下を出力します:

1          100
10         100
100        100

形式%-10d %d%nは次のように説明できます。

%-10d: first field

    %: start field
    -: left-justify
   10: output a minimum of 10 characters
    d: format as a decimal integer

%d: second field, using defaults for decimal integer
%n: newline
于 2011-09-29T19:59:53.600 に答える