Дополнение строки нулями слева в Java: форматирование до 10 символов

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Если вам необходимо дополнить строку нулями, воспользуйтесь методом String.format():

Java
Скопировать код
String str = "секретный рецепт пирогов"; // Исходная строка
int n = 20; // Желаемая общая длина строки
String result = String.format("%0" + n + "d", Integer.parseInt(str));

Здесь n указывает на длину результата, а str — это ваша строка, которая должна быть в числовом формате.

Если же ваша строка не представляет собой числовые данные, то связка методов String.format() и .replace() справится с данной задачей:

Java
Скопировать код
String result = String.format("%10s", str).replace(' ', '0');

А в случае, когда потребуется больший контроль в виду наличия специальных символов, лучшим выбором станет класс StringBuilder:

Java
Скопировать код
StringBuilder sb = new StringBuilder();
while (sb.length() + str.length() < n) {
    sb.append('0');
}
sb.append(str);
String result = sb.toString(); // Полученный результат
Кинга Идем в IT: пошаговый план для смены профессии

Продвинутые приёмы для ниндзя-кодера

Как выбрать свой путь

Определите, что вам требуется:

Для числовых строк используйте String.format() с форматом "%0Nd". Это простой и эффективный метод.

Если работаете со строками, которые включают буквы, примените StringUtils.leftPad(input, length, '0') или же воспользуйтесь StringBuilder. Это особенно актуально для мультиязычных текстов или при использовании сторонних библиотек.

Для неожиданного гостя

Не уверены в том, что строка содержит числовые данные? Чтобы избежать ошибок при преобразовании используйте этот подход:

Java
Скопировать код
String padding = "0".repeat(n – str.length());
String result = padding + str;

Этот метод подойдёт для Java 11+, в которой доступен метод String.repeat().

Для удобства работы с двоичным кодом

Дополнить двоичное число нулями нужно? Воспользуйтесь следующим кодом:

Java
Скопировать код
String binaryString = String.format("%0" + n + "s", Integer.toBinaryString(number)).replace(' ', '0');

Визуализация (и немного веселья 😉)

Вспомните, как выглядят цифровые часы: каждое число в них имеет две цифры:

Markdown
Скопировать код
Когда ночь ещё молодая, время выглядит так:
До:  5:3:7
После:  05:03:07

Чтобы получить такой же эффект на Java, используйте:

Java
Скопировать код
String.format("%0Nd", number);

Где N — это целевая длина.

И ещё одна иллюстрация для вдохновения:

Markdown
Скопировать код
Опаздывая на автобус!
Номер перед посадкой:      □□□
Ваш номер: _9_
Номер после посадки:  009  // Вот это да! Какой сервис!

Полезные материалы

  1. Примеры форматирования строк на Java: DZone — изучите искусство дополнения строк нулями.
  2. Formatter: JavaDocs — вдохновитесь документацией Java по форматированию строк.
  3. StringUtils: Apache — познакомьтесь с утилитой StringUtils.leftPad().
  4. String: JDKString.repeat() станет вашим спутником, начиная с Java 11.
  5. Обучение форматированию чисел — бесплатный курс по форматированию чисел в Java.
  6. Форматы Log4j — техники дополнения нулями в лог-записях для профессионалов.
Свежие материалы