How can I pad an integer with zeros on the left? – Dev

The best answers to the question “How can I pad an integer with zeros on the left?” in the category Dev.


How do you left pad an int with zeros when converting to a String in java?

I’m basically looking to pad out integers up to 9999 with leading zeros (e.g. 1 = 0001).


Let’s say you want to print 11 as 011

You could use a formatter: "%03d".

enter image description here

You can use this formatter like this:

int a = 11;
String with3digits = String.format("%03d", a);

Alternatively, some java methods directly support these formatters:

System.out.printf("%03d", a);


Use java.lang.String.format(String,Object...) like this:

String.format("%05d", yournumber);

for zero-padding with a length of 5. For hexadecimal output replace the d with an x as in "%05x".

The full formatting options are documented as part of java.util.Formatter.


Found this example… Will test…

import java.text.DecimalFormat;
class TestingAndQualityAssuranceDepartment
    public static void main(String [] args)
        int x=1;
        DecimalFormat df = new DecimalFormat("00");

Tested this and:


Both work, for my purposes I think String.Format is better and more succinct.


If you for any reason use pre 1.5 Java then may try with Apache Commons Lang method

org.apache.commons.lang.StringUtils.leftPad(String str, int size, '0')