5

conf ファイルに以下のようなメッセージがあります。

text.message = Richard/に移動する必要がSchoolあります。01/06/20121days

強調表示されたすべてのフィールドが変数になります。

text.meこの文字列を読み取り、プロパティを使用して Java から値を挿入したいと考えています。

Prop を使用して文字列全体を読み取る方法は知っていますが、上記の文字列のように読み取る方法がわかりません。

text.message = #name##date# / #days# で #place# に行かなければなりません。

  1. プロパティを使用してconfから上記の文字列を読み取り、データを動的に挿入するにはどうすればよいですか?

  2. 文字列内の日付または日のいずれかです。これらのパラメータ間でオンとオフを切り替えるにはどうすればよいですか?

ありがとうございます。

4

2 に答える 2

16

MessageFormatこれには API を使用できます。

キックオフの例:

text.message = {0} has to go to {1} in {2,date,dd/MM/yyyy} / {3}

String message = properties.getProperty("text.message");
String formattedMessage = MessageFormat.format(message, "Richard", "School", new Date(), "1days");
System.out.println(formattedMessage); // Richard has to go to School in 31/05/2012 / 1days
于 2012-06-01T03:19:16.087 に答える
3

MessageFormat文字列内の動的プレースホルダーを目的の値に置き換えるクラスを使用できます。

たとえば、次のコード...

String pattern = "{0} has to go to {1} in {2,date} / {3,number,integer} days.";
String result = MessageFormat.format(pattern, "Richard", "school", new Date(), 5);
System.out.println(result);

...次の出力が生成されます。

Richard has to go to school in 31-May-2012 / 5 days.

オブジェクトからパターンを取得しProperties、MessageFormat 変換を適用するだけです。

于 2012-06-01T03:18:52.863 に答える