Я ожидаю, что будет потенциальная разница с точки зрения разделителей тысяч и других опций, зависящих от локали.Первый подход просто вызовет Integer.toString
(который не чувствителен к локали), потому что Integer
не реализует Formattable
.Второй будет использовать потенциально целочисленное форматирование, зависящее от локали - он может вставить тысячи разделителей, потенциально даже использовать другой набор цифр и т. Д.
При более внимательном рассмотрении документов, выглядитПодобные разделители группирования не будут применяться без специального флага форматирования, но:
Алгоритм локализации чисел
После получения цифр для целой части, дробнаяpart и экспонента (в зависимости от типа данных) применяется следующее преобразование:
- Каждый цифровой символ 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);
}
}