Python では、これを簡単に行うことができます。
data = {'name':'Felix'}
s = 'Hello, %(name)s' % data
s
'Hello, Felix'
Javaで同じことを実装する同様の方法はありますか?
PS: わかりにくい質問で申し訳ありません。ユースケースは次のとおりです。キー値を格納するマップがあり、テンプレートはマップでキーを指定するだけでよく、キーの値はテンプレート内のキーがある場所にあります。
String.formatメソッドが必要です。
String data = "Hello, %s";
String updated = String.format(data, "Felix");
i18n サポートなどのより高度な技術が必要な場合は、高度なメッセージ形式機能を使用できます
例: 言語プロパティ ファイルに、メッセージであるプロパティ「テンプレート」を追加します。
template = At {2,time,short} on {2,date,long}, \
we detected {1,number,integer} spaceships on \
the planet {0}.
次に、変数をフォーマットして引数を配列に渡すことができます。
Object[] messageArguments = {
"Mars",
new Integer(7),
new Date()
};
フォーマッタを次のように呼び出します。
MessageFormat formatter = new MessageFormat("");
formatter.setLocale(currentLocale);
formatter.applyPattern(messages.getString("template"));
String output = formatter.format(messageArguments);
詳細な例はこちら http://docs.oracle.com/javase/tutorial/i18n/format/messageFormat.html