5

我的 conf 文件中有如下消息。

text.message = Richard必须进入/ School01/06/20121days

所有突出显示的字段都是可变的。

我想读取这个text.me字符串并使用属性从我的 java 中插入值。

我知道如何使用 Prop 读取整个字符串,但不知道如何像上面的 String 那样读取。

text.message = #name#必须在#date# / #days# 中前往#place#。

  1. 如何使用 Properties 从 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 回答