Ответ 1
Я бы ожидал, что разница в тысячах разделителей и другие варианты, зависящие от локали, будут потенциальными. Первый подход просто вызовет Integer.toString
(который не зависит от языка), потому что Integer
не реализует Formattable
. Второй способ будет использовать потенциально локализованное целочисленное форматирование - он может вставлять тысячи разделителей, возможно даже использовать другой набор цифр и т.д.
Глядя на документы более тщательно, похоже, что разделители группировки не будут применяться без определенного флага форматирования, но:
Алгоритм локализации номеров
После получения цифр для целой части, дробной части и показателя (в зависимости от типа данных) применяется следующее преобразование:
- Каждый цифровой символ d в строке заменяется определенной по языку цифрой, вычисленной относительно текущей нулевой цифры z; то есть d - '0' + z.
Пример, где это имеет значение:
import java.util.Locale;
public class Test {
public static void main(String[] args) {
Locale.setDefault(new Locale("hi", "IN"));
System.out.printf("String: %s; Number: %d\n", 1234, 1234);
}
}