Страницы

Поиск по вопросам

суббота, 14 декабря 2019 г.

Форматирование целого числа из “12345678” в “12 345 678”

#java #android #format


Как сделать форматирование числа из "12345678" в "12 345 678". То есть нужно каждую
1000 отделить пробелом, что бы большие числа выглядели эстетично.
    


Ответы

Ответ 1



Попробуйте так: NumberFormat f = NumberFormat.getInstance(); int i = 12345678; System.out.println(f.format(i)); // 12 345 678 P.S. Как здесь справедливо заметили, итоговый результат будет зависеть от текущей локали. Для того, чтобы не зависело, нужно указать конкретную локаль: NumberFormat f = NumberFormat.getInstance(new Locale("ru", "RU")); Список локалей и представления чисел в этих локалях можно посмотреть здесь

Ответ 2



Ещё один способ, без создания лишних объектов: String.format(Locale.CANADA_FRENCH, "%,d", 1234567890); Результат 1 234 567 890

Ответ 3



Решение независящее от локали: DecimalFormat formatter=new DecimalFormat(); DecimalFormatSymbols symbols=DecimalFormatSymbols.getInstance(); symbols.setGroupingSeparator(' '); //явно задаем символ разделителя тысяч formatter.setDecimalFormatSymbols(symbols); int i=12345678; String s=formatter.format(i).toString(); //12 345 678 P.S. можно написать более красиво через конструктор DecimalFormat с паттерном задающим символы локализации DecimalFormatSymbols - специально привел в длинном виде, чтобы была понятна логика.

Комментариев нет:

Отправить комментарий