#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 - специально привел в длинном виде, чтобы была понятна логика.
Комментариев нет:
Отправить комментарий