Вывести число в бухгалтерском формате

Например, число 20023143 должно быть выведено как 20 023 143

    Random random = new Random();
    for (int i = 0; i < 10; i++) {
        System.out.print(random.nextInt(10));
    }

Ответы (1 шт):

Автор решения: Vadik

Сделать это можно с помощью DecimalFormat и DecimalFormatSymbols. Сначала создадим объект DecimalFormatSymbols и укажем, что в качестве разделителя мы хотим использовать пробел:

DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setGroupingSeparator(' ');

Далее создадим объект DecimalFormat, используя ранее созданный DecimalFormatSymbols:

DecimalFormat formatter = new DecimalFormat("#,###", symbols);

Теперь форматируем произвольный integer так:

System.out.println(decimalFormat.format(integer));

Например, для максимального возможного integer вывод будет такой:

"2 147 483 647"

Второй способ — не использовать DecimalFormatSymbols, а задать локаль по умолчанию. Например, во французской локали в качестве разделителя будет использоваться неразрывный пробел:

Locale.setDefault(Locale.FRANCE);
DecimalFormat decimalFormat = new DecimalFormat("#,###");
System.out.println(decimalFormat.format(integer));

Результат:

"2 147 483 647"

Обратите внимание, что в отличие от первого варианта, здесь используются неразрывные пробелы.

→ Ссылка