属性文件中的消息格式选择

时间:2014-04-09 11:11:57

标签: java properties messageformat

我看过这个link,看不出我做错了什么。我正在使用MessageFormat从文件中获取属性,并希望根据传入的整数是1还是更高来使属性动态化。文件中的属性如下所示:

Prop1=Invalid password entered. You have {0,number,integer} {0,choice,1#attempt|1<attempts} remaining.

在代码中,我读取了这个属性,然后将一个参数数组传递给MessageFormat.format()(我传递一个数组以保证所有属性的一致性。在这种情况下,唯一存在的对象是字符串表示形式整数值) 在调试代码时,我可以看到该字符串被读取,但MessageFormat.format()似乎没有按预期格式化字符串。结果如下:

"Invalid password entered. You have {0,number,integer} {0,choice, 1#attempt|1<attempts} remaining."

有谁能告诉我我做错了什么?正如我之前所说,我传递整数值的字符串表示,但我假设上面的代码能够处理它。我误解了吗?

1 个答案:

答案 0 :(得分:2)

我希望,下面的代码段可以解决问题。

String msg  = "Invalid password entered. You have {0,number,integer} {0,choice,   1#attempt|1<attempts} remaining.";
int attemptCount = 1; 
System.out.println(MessageFormat.format(msg, attemptCount, attemptCount));

结果是,

输入的密码无效。你有1次尝试。