4

Python では、これを簡単に行うことができます。

data = {'name':'Felix'}
s = 'Hello, %(name)s' % data
s
'Hello, Felix'

Javaで同じことを実装する同様の方法はありますか?

PS: わかりにくい質問で申し訳ありません。ユースケースは次のとおりです。キー値を格納するマップがあり、テンプレートはマップでキーを指定するだけでよく、キーの値はテンプレート内のキーがある場所にあります。

4

5 に答える 5

1

String.formatメソッドが必要です。

String data  = "Hello, %s";
String updated = String.format(data, "Felix");
于 2013-07-26T03:03:29.480 に答える
0

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

于 2013-07-26T03:18:16.090 に答える