1

重複の可能性:
可変フィールドサイズを使用するJava printf?

私はしばらくJavaを使っていなかったので、出力をフォーマット/印刷するときに/で可変幅を指定する方法を探していました。私の例は整数での使用を示していますが、もちろん、これを他の型でも機能させたいと思っています。formatprintf

たとえば、次のようなもの

int val = 8;
int wid = 5;

System.out.printf("%"*d\n", wid, val);  

この回避策を使用できますが、これは醜いです:

System.out.printf("%"+wid+"d\n", val);

*可変フィールド幅指定子は Java から削除されましたか? この古い ページのセクション 1.3.1 は、(C で使用されるように) 使用方法を示していますが、動作させることができず、次のようになります。

java.util.UnknownFormatConversionException: Conversion = '*'

また、これが機能するという最近の参考文献を見つけることもできませんでした。

上記の回避策以外にこれを行う簡単な方法はありますか?

投稿する前に周りを見回したところ、約2年前のSOの質問Java printf using variable field size?に出くわしました。しかし、それはこれに関する最後の言葉ですか?

4

1 に答える 1

0

フォーマット指定子の一般的な構文は次のとおりです。

%[パラメータ][フラグ][幅][。精度][長さ]タイプ

printfの代わりに、

String.format( "%" + wid + "d"、val);

はい、Javaフォーマッタを使用している場合の唯一の方法はこれらです。

于 2012-10-18T16:04:02.780 に答える