java String.format:带有本地化的数字
是否可以使用与NumberFormat.format相同的方法来本地化String.format调用中的数字 我希望它能简单地使用java String.format:带有本地化的数字,java,localization,numbers,string-formatting,Java,Localization,Numbers,String Formatting,是否可以使用与NumberFormat.format相同的方法来本地化String.format调用中的数字 我希望它能简单地使用 String.format(locale, "%d", number) 但这并不像使用NumberFormat那样返回相同的结果。例如: String.format(Locale.GERMAN, "%d", 1234567890) 给出:“1234567890”,而 给出:“1.234.567.890” 如果无法做到这一点,建议使用什么方法来本地化包含数字的文
String.format(locale, "%d", number)
但这并不像使用NumberFormat那样返回相同的结果。例如:
String.format(Locale.GERMAN, "%d", 1234567890)
给出:“1234567890”,而
给出:“1.234.567.890”
如果无法做到这一点,建议使用什么方法来本地化包含数字的文本 从中,您必须:
- 提供区域设置(正如您在示例中所做的那样)
- 包括“,”标志以显示特定于区域设置的分组分隔符
String.format(Locale.GERMAN, "%,d", 1234567890)
请注意,“d”前面的附加“,”标志。String.format()的另一种选择是使用MessageFormat:
MessageFormat format = new MessageFormat("The number is {0, number}", Locale.GERMAN);
String s = format.format(new Object[] {number});
为什么不先将“字符串编号”解析为数字,然后用数字格式化程序进行格式化?我的“字符串编号”可以是包含数字的字符串,所以我无法将其解析为数字。
MessageFormat format = new MessageFormat("The number is {0, number}", Locale.GERMAN);
String s = format.format(new Object[] {number});