是否可以使用与NumberFormat.format相同的方式在String.format调用中本地化数字?
我希望它只是使用
String.format(locale, "%d", number)
但是这不会返回与使用NumberFormat相同的结果。例如:
String.format(Locale.GERMAN, "%d", 1234567890)
给出:“1234567890”,而
NumberFormat.getNumberInstance(Locale.GERMAN).format(1234567890)
给出:“1.234.567.890”
如果无法完成,本地化文本(包括数字)的推荐方法是什么?
答案 0 :(得分:22)
从documentation开始,您必须:
所以你的例子会变成:
String.format(Locale.GERMAN, "%,d", 1234567890)
请注意'd'之前的附加','标志。
答案 1 :(得分:3)
String.format()
的替代方法是使用MessageFormat:
MessageFormat format = new MessageFormat("The number is {0, number}", Locale.GERMAN);
String s = format.format(new Object[] {number});