Java - 숫자 왼쪽에 0으로 채우기

특정 자리수 만큼 정수 왼쪽에 0으로 채우는 방법을 소개합니다.

예를 들어, 아래와 같이 숫자를 10자리의 숫자로 표현하는데, 숫자 왼쪽에 부족한 공간은 0으로 채우는 방법입니다.

1234 -> 0000001234

1. String.format()를 이용한 방법

String.format(format, num) 함수는 인자로 전달된 format에 맞게 숫자를 문자열로 변환합니다.

아래 예제에서 "%06d"는 정수를 6자리로 출력하는데 왼쪽의 비어있는 공간은 0으로 가득채워서 6자리로 맞추라는 의미입니다. 그리고 "%010d"는 10자리로 출력하고 비어있는 공간은 0으로 가득채우라는 의미입니다.

public class Example {

    public static void main(String[] args) {

        int num = 1234;

        String str = String.format("%06d", num);
        System.out.println(str);

        str = String.format("%010d", num);
        System.out.println(str);
    }
}

Output:

001234
0000001234

2. DecimalFormat를 이용한 방법

new DecimalFormat("000000")처럼 객체를 초기화하고, format(num)을 호출하면 6자리수로 정수를 문자열로 변환하고 비어있는 공간은 0으로 가득채워 리턴합니다.

import java.text.DecimalFormat;

public class Example1 {

    public static void main(String[] args) {

        int num = 1234;

        DecimalFormat df = new DecimalFormat("000000");
        String str = df.format(num);
        System.out.println(str);

        df = new DecimalFormat("0000000000");
        str = df.format(num);
        System.out.println(str);
    }
}

Output:

001234
0000001234

3. System.out.printf()를 이용한 방법

String.format()과 같이 printf()로 특정 형식으로 정수를 문자열로 변환할 수 있습니다.

printf()의 경우 문자열을 리턴하지 않고 콘솔에 바로 출력합니다. 줄바꿈을 하지 않으니 따로 추가하시거나 println()을 호출해줘야 합니다.

public class Example2 {

    public static void main(String[] args) {

        int num = 1234;

        System.out.printf("%06d", num);

        System.out.println();

        System.out.printf("%010d", num);
    }
}

Output:

001234
0000001234
Loading script...
codechachaCopyright ©2019 codechacha