Java에서 String.format 메소드를 사용하여 0 앞에 정수를 줄 수 있는지 궁금합니다.
예를 들면 다음과 같습니다.
1은 001이됩니다
2는 002가됩니다
…
11은 011이됩니다
12는 012가됩니다
…
526은 526으로 유지됩니다
… 등
현재 다음 코드를 시도했습니다.
String imageName = "_%3d" + "_%s";
for( int i = 0; i < 1000; i++ ){
System.out.println( String.format( imageName, i, "foo" ) );
}
불행히도이 숫자 앞에는 3 개의 빈 공간이 있습니다. 대신 숫자 앞에 0을 붙일 수 있습니까?
답변
%03d
정수의 형식 지정자에서 사용하십시오 . 이는 0
숫자가 3 자리 미만인 경우 숫자가 0으로 채워짐을 의미합니다.
Formatter
다른 수정 자에 대해서는 문서를 참조하십시오 .
답변
String.format("%03d", 1) // => "001"
// │││ └── print the number one
// ││└────── ... as a decimal integer
// │└─────── ... minimum of 3 characters wide
// └──────── ... pad with zeroes instead of spaces
자세한 내용 java.util.Formatter
은 참조하십시오.
답변
apache commons-lang이라는 타사 라이브러리를 사용하는 경우 다음 솔루션이 유용 할 수 있습니다.
StringUtils
아파치 commons-lang 클래스 사용 :
int i = 5;
StringUtils.leftPad(String.valueOf(i), 3, "0"); // --> "005"
으로는 StringUtils.leftPad()
보다 빠른입니다String.format()