Как дополнить число нулями слева
Короткий ответ
Шаблон %05d выводит число шириной 5 символов, дополняя его нулями:
void main() {
IO.println(String.format("%05d", 42));
IO.println("%03d".formatted(7));
}Результат:
00042
007Номер заказа
Ведущие нули часто нужны в номерах документов:
void main() {
for (int id : new int[] {1, 25, 310}) {
IO.println("INV-%04d".formatted(id));
}
}Результат:
INV-0001
INV-0025
INV-0310Время
Часы и минуты обычно выводят двумя цифрами:
void main() {
int totalSeconds = 3725;
int hours = totalSeconds / 3600;
int minutes = totalSeconds % 3600 / 60;
int seconds = totalSeconds % 60;
IO.println("%02d:%02d:%02d".formatted(hours, minutes, seconds));
}Результат:
01:02:05Строка из цифр
Если значение уже строка, дополните её через repeat():
void main() {
String code = "815";
IO.println("0".repeat(Math.max(0, 6 - code.length())) + code);
}Результат:
000815Частая ошибка
Хранить номер с ведущими нулями в int. Числу нули не нужны, и при чтении они пропадают. Почтовые индексы, телефоны и коды храните строками:
void main() {
int zip = Integer.parseInt("01067");
IO.println(zip);
}Результат:
1067Функции из этого ответа
- String.format() — Собирает строку по шаблону с подстановками вроде %s и %d.
- String.repeat() — Повторяет строку указанное число раз.
- String.formatted() — Подставляет значения в саму строку как в шаблон — короткая форма String.format().