web-dev-qa-db-ja.com

Java-文字列内に変数を含めますか?

それでは、次のようにして変数を文字列に含めることができることをすべて知っている必要があります。

String string = "A string " + aVariable;

次のような方法がありますか?

String string = "A string {aVariable}";

つまり:引用符を閉じてプラス記号を追加する必要はありません。とても魅力的ではありません。

96
Gray Adams

常にString.format(....)を使用できます。すなわち、

String string = String.format("A String %s %2d", aStringVar, anIntVar);

それがあなたにとって十分に魅力的かどうかはわかりませんが、とても便利です。構文は、printfおよびJava.util.Formatterと同じです。特に表形式の数値データを表示したい場合は、これを多く使用しました。

これは文字列補間と呼ばれます。 Javaには存在しません。

1つのアプローチは、String.formatを使用することです。

String string = String.format("A string %s", aVariable);

別のアプローチは、 Velocity または FreeMarker などのテンプレートライブラリを使用することです。

57
Jacob Mattison

Java.text.MessageFormat も検討してください。これは、数値引数インデックスを持つ関連構文を使用します。例えば、

String aVariable = "of ponies";
String string = MessageFormat.format("A string {0}.", aVariable);

次を含むstringになります。

A string of ponies.

より一般的には、クラスはその数値および一時的な書式設定に使用されます。 JFreeChart ラベルのフォーマットの例を説明します here ;クラス RCInfo は、ゲームのステータスペインをフォーマットします。

30
trashgod