3

Python では、書式設定された print ステートメントでタプルを使用できます。タプル値は、書式設定された文字列の指定された位置で使用されます。例えば:

>>> a = (1,"Hello",7.2)
>>> print "these are the values %d, %s, %f" % a
these are the values 1, Hello, 7.200000

同様の方法でJava printfステートメントで配列またはコレクションを使用する方法はありますか?

ドキュメントを見たところ、Calendar などのいくつかのタイプのサポートが組み込まれているようですが、コレクションについては何も表示されません。

これがJavaで提供されていない場合、コレクションにデータを入力し、1つのフォーマット文字列を使用して多くのコレクションから値を出力する(ネストされたループ以外)場合に使用されるJavaイディオムはありますか?

4

2 に答える 2

12

printf には、次の行に沿った宣言があります。

public PrintString printf(String format, Object... args);

... とほぼ同じ意味[]です。違いは...、呼び出し元が明示的に配列を作成することを省略できることです。したがって、次のことを考慮してください。

    out.printf("%s:%s", a, b);

これは次と同等です。

    out.printf("%s:%s", new Object[] { a, b });

質問に戻ると、配列の場合は次のように書くことができます。

    out.printf("%s:%s", things);

コレクションの場合:

    out.printf("%s:%s", things.toArray());
于 2008-09-28T18:18:25.313 に答える
2

MessageFormatクラスにも興味があるかもしれません。

于 2008-09-28T21:03:06.713 に答える