본문 바로가기

Language/Java / JSP

[Java] 특정 자리수 만큼 0으로 공백 채우기(String.format())

반응형

MySQL에는 ZeroFill 이라는 옵션이 있다. ZeroFill에 대해 아주 간단하게 설명하면 숫자로 이루어진 값이 있을때 특정 자릿수만큼 값을 0으로 채우는 것이다.


즉 int(8)로 정의된 "3"이라는 숫자가 있다면 실제 값은 "00000003" 으로 저장하는 것이다.



Java에서는 아쉽게도(?) ZeroFill 옵션이 없다. 그래서 종종 자릿수를 맞춰야 하는 경우가 발생을 하면 해당 숫자를 체크하여 앞에 0을 붙여주기도 한다. 예를들면 2자릿수를 맞춰야 한다고 하면 값을 체크하여 10 이하여 숫자 앞에다가 0을 붙이는 식이다.

위와 같은 방식은 사실 비효율적이다. 체크하고자 하는 자릿수가 많은경우 더 많은 계산을 필요로 하므로 효율적이라고 보기에는 힘들다. 이런 경우라면 Java에 기본적으로 포함되어 있는 String.format을 이용하자.


public class ZeroFillTest {
	
	
	public static void main(String[] args) {
		
		System.out.println(String.format("%02d", 8));
		System.out.println(String.format("%02d", 11));
		
	}
}



위의 코드에서 %02d 에 설명하면 다음과 같다.
% : 명령 시작을 의미
0 : 채워질 문자
2 : 총 자리수
d : 십진수로 된 정수

%02d : 십진수로 된 2자리의 정수 형식으로 나타냄. 단 자릿수가 부족할 경우 0으로 해당부분을 채움


이 밖에도 String.format을 이용하면 다양한 방법으로 문자를 표현할 수 있다.
시간날때 다음 URL을 참고하면 많은 도움이 된다. - http://examples.javacodegeeks.com/core-java/lang/string/java-string-format-example/