Дополнение строки нулями слева в 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 — техники дополнения нулями в лог-записях для профессионалов.