Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как дополнить число нулями слева

Короткий ответ

Шаблон %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().

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.