Java - Компактная форматирование чисел

Привет, будущие маги Java! ? Сегодня мы отправляемся в увлекательное путешествие по миру компактного форматирования чисел в Java. Не волнуйтесь, если вы новичок в программировании; я стану вашим дружелюбным гидом, и мы будем идти шаг за шагом. К концу этого урока вы сможете форматировать числа как профессионал!

Java - Compact Number Formatting

Что такое компактное форматирование чисел?

Перед тем как погружаться в код, давайте понимем, что такое компактное форматирование чисел. Представьте себе, что вы создаете социальную сеть, и хотите отобразить количество лайков под постом. Когда у поста 1,000,000 лайков, гораздо чище показать "1M", чем полное число. Вот тут-то и приходит на помощь компактное форматирование чисел!

Создание экземпляра CompactNumberFormat

Начнем с создания экземпляра CompactNumberFormat. Это как подготовка нашей волшебной палочки для форматирования чисел!

import java.text.NumberFormat;
import java.util.Locale;

public class CompactNumberDemo {
public static void main(String[] args) {
NumberFormat formatter = NumberFormat.getCompactNumberInstance(Locale.US, NumberFormat.Style.SHORT);
}
}

В этом фрагменте кода мы делаем несколько вещей:

  1. Импортируем необходимые классы.
  2. Создаем объект NumberFormat под названием formatter.
  3. Используем NumberFormat.getCompactNumberInstance(), чтобы получить форматтер компактных чисел.
  4. Указываем Locale.US, чтобы использовать форматирование американского английского.
  5. Выбираем NumberFormat.Style.SHORT для краткого представления чисел.

Представьте Locale как указание Java, какой стиль чисел использовать от имени страны. Это как выбор между записью дат как MM/DD/YYYY или DD/MM/YYYY!

Форматирование значения

Теперь, когда у нас есть форматтер, давайте используем его для форматирования некоторых чисел!

public class CompactNumberDemo {
public static void main(String[] args) {
NumberFormat formatter = NumberFormat.getCompactNumberInstance(Locale.US, NumberFormat.Style.SHORT);

long number = 1000000;
String formattedNumber = formatter.format(number);
System.out.println(formattedNumber);  // Вывод: 1M
}
}

Вот что происходит:

  1. Создаем переменную long number с значением 1,000,000.
  2. Используем наш formatter для форматирования этого числа.
  3. Выводим результат, который будет "1M".

Ниже не так? Мы превратили миллион в "1M" всего за несколько строк кода!

Пример компактного форматирования чисел

Расширим наш пример для форматирования разных чисел:

public class CompactNumberDemo {
public static void main(String[] args) {
NumberFormat formatter = NumberFormat.getCompactNumberInstance(Locale.US, NumberFormat.Style.SHORT);

long[] numbers = {1000, 1000000, 1000000000};
for (long number : numbers) {
String formattedNumber = formatter.format(number);
System.out.println(number + " -> " + formattedNumber);
}
}
}

Вывод:

1000 -> 1K
1000000 -> 1M
1000000000 -> 1B

В этом примере:

  1. Создаем массив long чисел.
  2. Используем цикл for-each для перебора чисел.
  3. Форматируем каждое число и выводим исходное и форматированное значения.

Видите, как наш форматтер магически преобразует 1000 в 1K, 1000000 в 1M и 1000000000 в 1B? Это как если бы у нас была зелье для уменьшения чисел из哈利·波特!

Компактное форматирование чисел и дробные цифры

Иногда мы можем захотеть показать немного больше точности в наших форматированных числах. Мы можем это сделать, установив максимальное количество дробных цифр:

public class CompactNumberDemo {
public static void main(String[] args) {
NumberFormat formatter = NumberFormat.getCompactNumberInstance(Locale.US, NumberFormat.Style.SHORT);
formatter.setMaximumFractionDigits(2);

double[] numbers = {1234, 12345, 123456, 1234567};
for (double number : numbers) {
String formattedNumber = formatter.format(number);
System.out.println(number + " -> " + formattedNumber);
}
}
}

Вывод:

1234.0 -> 1.23K
12345.0 -> 12.35K
123456.0 -> 123.46K
1234567.0 -> 1.23M

Вот что мы сделали:

  1. Установили максимальное количество дробных цифр равным 2 с помощью setMaximumFractionDigits(2).
  2. Использовали массив double чисел для большей точности.
  3. Форматировали и выводили каждое число.

Заметите, как теперь у нас есть дробные части в наших форматированных числах? Это как увеличение масштаба карты, чтобы увидеть больше деталей!

Заключение

Поздравляю! Вы только что научились использовать компактное форматирование чисел в Java. Эта функция невероятно полезна, когда вам нужно отображать большие числа в удобном для пользователя способе. Помните, хорошее программирование - это не только делать так, чтобы всё работало, но и делать это легко понятным и удобным для использования.

По мере продолжения вашего путешествия по Java, вы откроете множество других захватывающих функций. Постоянно практикуйтесь, будьте любознательными и, что самое важное, наслаждайтесь программированием! Кто знает, может быть, однажды вы создадите следующую большую социальную сеть, и используете компактное форматирование чисел, чтобы показать, сколько миллионов пользователей у вас есть! ?

Счастливого кодирования, будущие звезды Java! ?

Credits: Image by storyset