- How to Add Leading Zeros to Integers in Java ? String Left Padding Example Program
- Left and Right padding Integer and String in Java
- Java String left and right padding example
- Как отформатировать строку Java с нулем в начале?
- Как добавить дополнение к строке в Java
- 1. Использование String.format() метод
- 2. Использование Apache Commons StringUtils class
- 3. Использование Guava
How to Add Leading Zeros to Integers in Java ? String Left Padding Example Program
Hello guys, you may know that from Java 5 onwards it’s easy to left pad Integers with leading zeros when printing number as String. In fact, You can use the same technique to left and right pad Java String with any characters including zeros, space. Java 5 provides String format methods to display String in various formats. By using the format() method we can add leading zeros to an Integer or String number. By the way, this is also known as left padding Integers with zero in Java. For those who are not familiar with the left and right padding of String, here is a quick recap;
When we add characters like zero or space on left of a String, its known as left padding and when we do the same on the right side of String, it’s known as right padding of String. This is useful when you are displaying currency amounts or numbers, which has fixed width, and you want to add leading zeros instead of space in front of Integers.
If by any chance, You are not using Java 5 or you like to use open source projects like Apache commons, Google Guava or Spring framework then you can use leftPad() and rightPad() methods provided by StringUtils class. I personally prefer JDK function if it provides required functionality but It’s very common to have Spring , Apache commons or Guava already in your classpath.
In that case use those method because they are more convenient, readable and you don’t need to remember different String formatting options to left and right pad a String with zero or any character . By the way, while padding String and number left and right, it’s worth remember not to right pad numbers with zero, it will completely change there meaning.
Left and Right padding Integer and String in Java
In this Java tutorial, we will see How to add leading zero to Integer or String in Java. Both are actually same because you only print String in Java and left padding is done at the time of display and the original Integer value is not affected. The format() method of String class in Java 5 is the first choice. You just need to add «%03d» to add 3 leading zeros in an Integer. Formatting instruction to String starts with «%» and 0 is the character which is used in padding. By default left padding is used, 3 is the size and d is used to print integers.
It means if the number has 1 or 2 digits than some leading zeros will be added to the number to make its width equal to 3. This is also known as left padding of Integers in Java. By default Java left pad with space and if you add 0 then Integer will be left padded with zero. You can not use other character e.g. # here.
On the other hand both Spring and Apache commons StringUtils provides you convenient leftPad() and rightPad() method to add left and right padding on String in Java. These methods also allow you to pass any character of your choice to be used as padding e.g. zero, # or space.
Java String left and right padding example
Let’s see some code example of left and right padding String and Integer in Java using Spring, Apache Commons StringUtils and format method of String.
Как отформатировать строку Java с нулем в начале?
Это довольно умно — но мне потребовалось около 30 секунд, чтобы «получить это». Я думаю, что более читаемое решение было бы лучше.
Это отличное решение, когда вы встраиваете программное обеспечение в что-то без большого пространства, а дополнительные библиотеки просто не подходят. Спасибо!!
Это быстро и работает для любой длины. public static String prefixZeros (String value, int len)
@Mathu, честно говоря, это не сложно понять. Две строки объединяются (объединяются), и первые 5 символов извлекаются из него. Нет магии. Не очень разумно в этом случае (для фиксированной строки Apple), но легко понять. («0000» + theString).substring(theString.length()) более реалистично. Это theString с ведущими нулями. Извините, не удержался от добавления этого комментария 🙂
@Dici Он «работает» для большего размера, он просто усекает вашу строку до 8 символов . Так что это зависит от вашего ожидаемого поведения для строк длиной более 8 символов (которые не были указаны в OP)
Это решение имеет короткий синтаксис, но это не «сумасшедший быстрый». Если вам повезет, компилятор оптимизирует его, но, по сути, настоящий «быстрый» способ сделать это — использовать StringBuilder , и для его заполнения требуется цикл. Если требование действительно обрезать только 8-символьные строки, это нормально, хотя это очень узкий вариант использования, но это решение никогда нельзя назвать быстрым. Это просто коротко.
public class LeadingZerosExample < public static void main(String[] args) < int number = 1500; // String format below will add leading zeros (the %0 syntax) // to the number above. // The length of the formatted string will be 7 characters. String formatted = String.format("%07d", number); System.out.println("Number with leading zeros: " + formatted); >>
Вы можете использовать StringUtils или DecimalFormat для Java 1.4 и ниже. Проверьте здесь javadevnotes.com/java-integer-to-string-with-leading-zeros
Ну, просто измените %07d на %07s и %07s String вместо int . Проблема со всеми отрицательными голосами в том, что вы не читаете документацию по языку Java
StringUtils.leftPad(yourString, 8, '0');
Даже если вы не можете использовать commons-lang, вы можете легко скопировать исходный код из StringUtils, чтобы создать собственную функцию. Это было бы намного лучшим общим решением, чем выбранный ответ. docjar.com/html/api/org/apache/commons/lang/.
что если это будет единственный метод, для которого используется библиотека? Возможно, добавленная библиотека даже во много раз больше, чем приложение, в котором она используется. Я могу представить довольно много причин, чтобы не добавлять библиотеку в приложение. Не поймите меня неправильно: я согласен, он содержит очень полезные вещи, но я понимаю нежелание наполнять приложение полным внешних JAR-файлов, если выгода не требует написания только одного (или пары) методов.
@kaliatech: да, гораздо лучшее ОБЩЕЕ решение, но если он не хочет использовать библиотеку, вероятно, более подходящим является сфокусированное (короткое) решение.
Чтобы ответить на вопрос «Почему бы не использовать commons-lang? В нем есть множество полезных дополнений». вопрос с конкретным примером. Xiaomi поставляет устаревшую версию commons-lang на своих устройствах Android. Включение более новой версии в ваше приложение приводит к конфликтам загрузчика классов, поэтому commons-lang больше не может использоваться ни в одном проекте Android.
Как добавить дополнение к строке в Java
В этом посте мы обсудим, как добавить дополнение к строке в Java.
1. Использование String.format() метод
Распространенным решением для заполнения строки слева/справа пробелами является использование String.format() метод. Например,
Если ваша строка является числовой, вы можете дополнить ее нулями, преобразовав ее в целое число:
2. Использование Apache Commons StringUtils class
В качестве альтернативы вы можете использовать Apache Commons Lang. StringUtils class leftPad() а также rightPad() служебные методы, которые могут добавлять указанные отступы в начало и конец строки соответственно.
3. Использование Guava
Вы также можете использовать padStart() а также padEnd() метод, предлагаемый Guava. Strings учебный класс. Сигнатура метода остается такой же, как и в приведенном выше решении.
Это все, что касается заполнения строки в Java.
Средний рейтинг 5 /5. Подсчет голосов: 15
Голосов пока нет! Будьте первым, кто оценит этот пост.
Сожалеем, что этот пост не оказался для вас полезным!
Расскажите, как мы можем улучшить этот пост?
Спасибо за чтение.
Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.
Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂
Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно