如何为数字全局配置MessageFormat

时间:2018-07-13 08:14:39

标签: java messageformat

我想更改MessageFormat打印数字的方式。

Integer foo = 99888;
String bar = MessageFormat.format("{0}", foo);

观察值为“ 99,888”。

期望值为“ 99888”。

我能做的是这个

String bar = MessageFormat.format("{0, number,#}", foo);

问题是我必须在{'1}超过10'000的项目中进行更改。因此,这并不是我真正想要的方式。

您知道是否可以全局更改给MessageFormat.format()的数字格式吗?

3 个答案:

答案 0 :(得分:3)

除了写一个非常奇怪的方面,我不相信有办法。这就是您使用无法修改的static方法支付的价格。

我会考虑使用您喜欢的IDE或命令行工具(例如, sed。如果您想将所有发生的{0}更改为{0,number,#}

sed -i -e 's/{0}/{0,number,#}/g' MyClass.java

答案 1 :(得分:2)

短号

我会将模式"{0, number,#}"存储在全局变量中,因此应具有类似“全局”的设置。

答案 2 :(得分:0)

我对此进行了测试,然后得到了

bar = "99 888";

所以我想它正在工作。