40

私はString.format以前にこのように使用されているのを見たことがあると確信しています:

String.format("Some {1}, {2}, {3}", var1, var2, var3);

これは誰かのために何か鐘を鳴らしますか?多分私はC#を考えていますが、Javaで同じことを達成する方法はありますか?

私はあなたが次のようなことをすることができることを知っています:

String.format("Some %s, %d, %s", aString, aNumber, aString)

しかし、私が求めている構文は前者のものです...

4

4 に答える 4

52

あなたが探しているのはMessageFormat、与えられたフォーマットと入力パラメータを使用するものです。

MessageFormat.format("Some {0}, {1}, {2}", var1, var2, var3);

また、すでに述べたようにString.format、代替構文を使用してジョブを実行することはできますが、機能的にはそれほど強力ではなく、要求したものではありません。

于 2012-08-26T18:15:03.470 に答える
13

はい、それはC#の典型的なフォーマット文字列です。Javaでは、後者、つまり、を使用できます。String.format("%s %d %d", ...)

の方法はMessageFormat.format("Some {0}, {1}, {2}", var1, var2, var3)、@ Tobiasで言及されているように、.NET中括弧表記を使用するを使用することですが、インポートする必要がありますjava.text.MessageFormat。また、ローカライズされたリソースを処理する場合にも適しています。ローカライズされたリソースでは、通常.properties、形式のメッセージを含む外部ファイルがありますError {0} ocurred due to {1}

于 2012-08-26T18:09:15.993 に答える