如何全局配置号码的消息格式

How to configure MessageFormat for numbers globaly

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

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

观测值为“99,888”。

所需值为“99888”。

我能做的是:

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

问题是我必须在一个超过10'000的项目中更改它MessageFormat.format()。所以这不是我想要的方式。

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

我测试了这个,我得到了,

bar = "99 888";

所以我猜它正在工作。

除了写一个很奇怪的方面,我认为没有办法。这是您使用无法修改的 static 方法所付出的代价。

我会考虑使用您最喜欢的 IDE 或命令行工具(例如sed。如果你想将所有出现的 {0} 更改为 {0,number,#} 它应该足以

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

短号

我会将模式 "{0, number,#}" 存储在一个全局变量中,所以有类似 "global" 的设置。