Дополнение строки нулями слева в Java: форматирование до 10 символов
Быстрый ответ
Если вам необходимо дополнить строку нулями, воспользуйтесь методом String.format():
String str = "секретный рецепт пирогов"; // Исходная строка
int n = 20; // Желаемая общая длина строки
String result = String.format("%0" + n + "d", Integer.parseInt(str));
Здесь n указывает на длину результата, а str — это ваша строка, которая должна быть в числовом формате.
Если же ваша строка не представляет собой числовые данные, то связка методов String.format() и .replace() справится с данной задачей:
String result = String.format("%10s", str).replace(' ', '0');
А в случае, когда потребуется больший контроль в виду наличия специальных символов, лучшим выбором станет класс StringBuilder:
StringBuilder sb = new StringBuilder();
while (sb.length() + str.length() < n) {
sb.append('0');
}
sb.append(str);
String result = sb.toString(); // Полученный результат

Продвинутые приёмы для ниндзя-кодера
Как выбрать свой путь
Определите, что вам требуется:
Для числовых строк используйте String.format() с форматом "%0Nd". Это простой и эффективный метод.
Если работаете со строками, которые включают буквы, примените StringUtils.leftPad(input, length, '0') или же воспользуйтесь StringBuilder. Это особенно актуально для мультиязычных текстов или при использовании сторонних библиотек.
Для неожиданного гостя
Не уверены в том, что строка содержит числовые данные? Чтобы избежать ошибок при преобразовании используйте этот подход:
String padding = "0".repeat(n – str.length());
String result = padding + str;
Этот метод подойдёт для Java 11+, в которой доступен метод String.repeat().
Для удобства работы с двоичным кодом
Дополнить двоичное число нулями нужно? Воспользуйтесь следующим кодом:
String binaryString = String.format("%0" + n + "s", Integer.toBinaryString(number)).replace(' ', '0');
Визуализация (и немного веселья 😉)
Вспомните, как выглядят цифровые часы: каждое число в них имеет две цифры:
Когда ночь ещё молодая, время выглядит так:
До: 5:3:7
После: 05:03:07
Чтобы получить такой же эффект на Java, используйте:
String.format("%0Nd", number);
Где N — это целевая длина.
И ещё одна иллюстрация для вдохновения:
Опаздывая на автобус!
Номер перед посадкой: □□□
Ваш номер: _9_
Номер после посадки: 009 // Вот это да! Какой сервис!
Полезные материалы
- Примеры форматирования строк на Java: DZone — изучите искусство дополнения строк нулями.
- Formatter: JavaDocs — вдохновитесь документацией Java по форматированию строк.
- StringUtils: Apache — познакомьтесь с утилитой StringUtils.leftPad().
- String: JDK —
String.repeat()станет вашим спутником, начиная с Java 11. - Обучение форматированию чисел — бесплатный курс по форматированию чисел в Java.
- Форматы Log4j — техники дополнения нулями в лог-записях для профессионалов.


