java String.format: numbers with localization
java, localization, numbers, string-formatting
Solution
From the documentation, you have to:
- supply a locale (as you are doing in your example)
- include the '`,`' flag to show locale-specific grouping separators
So your example would become:
String.format(Locale.GERMAN, "%,d", 1234567890)
Note the additional '`,`' flag before the 'd'.
Problem
Is it possible to localize numbers in `String.format` call the same way as `NumberFormat.format` does? I've expected it simply to use ``` String.format(locale, "%d", number) ``` but this doesn't return the same result as `NumberFormat`. For example: ``` String.format(Locale.GERMAN, "%d", 1234567890) ``` gives: "1234567890", while ``` NumberFormat.getNumberInstance(Locale.GERMAN).format(1234567890) ``` gives: "1.234.567.890" If it can't be done, what's recommended way for localizing text including numbers?