Метод 1: использование операторов if-else
Один простой подход — использовать операторы if-else, чтобы проверить величину числа и соответствующим образом преобразовать его. Вот пример:
fun formatNumber(number: Long): String {
return when {
number < 1_000 -> number.toString()
number < 1_000_000 -> "${number / 1_000}K"
number < 1_000_000_000 -> "${number / 1_000_000}M"
else -> "${number / 1_000_000_000}B"
}
}
В этом коде мы проверяем, меньше ли число 1000, и если да, то возвращаем само число. Если число находится в диапазоне от 1000 до 999999, мы делим его на 1000 и добавляем к результату букву «K». Аналогично, для чисел от 1 000 000 до 999 999 999 мы делим на 1 000 000 и добавляем «M». Наконец, если числа больше или равны 1 000 000 000, мы делим их на 1 000 000 000 и добавляем букву “B”.
Метод 2. Использование расширений
Другой подход — создать функцию расширения для типа Long, которая напрямую преобразует число в нужный формат. Вот пример:
fun Long.formatNumber(): String {
return when {
this < 1_000 -> this.toString()
this < 1_000_000 -> "${this / 1_000}K"
this < 1_000_000_000 -> "${this / 1_000_000}M"
else -> "${this / 1_000_000_000}B"
}
}
С помощью этой функции расширения вы можете напрямую вызвать formatNumber()для любого значения Longи получить отформатированную строку.
Метод 3. Использование числового формата
Kotlin предоставляет класс NumberFormat, который позволяет форматировать числа в соответствии с различными локалями и шаблонами. Вот пример:
import java.text.NumberFormat
fun formatNumber(number: Long): String {
val formatter = NumberFormat.getInstance()
return formatter.format(number)
}
В этом коде мы создаем экземпляр NumberFormat, используя локаль по умолчанию. Затем мы используем метод format()для форматирования числа в соответствии с правилами локали.
В этой статье мы рассмотрели различные методы преобразования чисел Kotlin в форматы K, M и B. Для этого мы использовали операторы if-else, функции расширения и класс NumberFormat. Теперь вы можете легко форматировать большие числа более читабельным и разговорным способом. Приятного кодирования!