Вывести число в бухгалтерском формате
Например, число 20023143 должно быть выведено как 20 023 143
Random random = new Random();
for (int i = 0; i < 10; i++) {
System.out.print(random.nextInt(10));
}
Ответы (1 шт):
Сделать это можно с помощью 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"
Обратите внимание, что в отличие от первого варианта, здесь используются неразрывные пробелы.