コレクションまたは配列のJava printf機能
-
02-07-2019 - |
質問
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イディオムはありますか
解決
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());
他のヒント
MessageFormat クラスも。
所属していません StackOverflow