3

私はこの単純化されたコードを持っています:

System.out.printf("%-*s   Exam Percentage: %4.1f   Final Grade: %c\n", VAR, "fox"+", "+"jim",25.3225, 'C');

これおよび他のリソースによると、次の効果をもたらす幅の列「VAR」文字を生成する必要があります。

 fox, jim   Exam Percentage:  25.3    Final Grade: C

forループを実行し、VARは最初の文字列の最大サイズです。

私はメソッドを再構成します:

System.out.printf("%-"+VAR+"s   Exam Percentage: %4.1f   Final Grade: %c\n", "fox"+", "+"jim",25.3225, 'C');

それは動作しますが、私は主に興味があります。また、前述のページでは、「argsize」について説明しているため、洞察が得られる場合があります。

PSコードにリテラルがあることは知っています。その単純さのために。

4

1 に答える 1

1

System.outなどのjava.io.PrintStreamのメソッドprintfのフォーマット文字列は、 Javaフォーマット文字列として定義されています。それらは、Lavaと呼ばれるもののためにリンクしたドキュメントとは異なります。特に、Javaでのパーセント変換の幅は数値であり、アスタリスク(*)で置き換えることはできません。言い換えれば、お気づきのように、書く%-*sことはOKではありませんが、書くことは問題ありません%-20s

于 2013-02-26T03:55:57.210 に答える