티스토리 뷰


java에서 숫자를 문자로 나타낼경우.. 숫자의 앞 0은 사라지고 0001은 1로.. 0030은 30으로 나오게 된다.
별로 문제가 없어보이지만 NO처리등 자릿수가 고정적이어야 하는것들에서는 가변적인 자리수각 되므로
문제가 된다.

이때  아래와 같이 String.format() 함수를 쓰면 된다.
이전 이함수를 몰랐을때 length로 자리수를 구해 if문으로 앞에 0을 붙여주던게 생각난다...-_-;;
아는게 힘이고 노가다를 줄여준다.;;;

%04d 의 의미
 % -  명령의시작
 0 - 채워질 문자
 4 - 총 자리수
 d - 십진정수

한마디로.. 4자리를 맞춘다는거임..
 int user_no = 30;
String result_user_no = String.format("%04d", user_no);

result_user_no 는 0030이 된다.



-- 기타 참고코드
 
% [인자 번호] [플래그] [너비] [.정밀도] 유형
%d 십진정수, %f 부동소수점, %x 16진수, %c 문자

%tc 날짜와 시간 전부 표시
%tr 시간만 표시할때
%A %B %C 요일,월,일 표시

String s = String.format("%, d", 1000000000);
System.out.println(s);
String fo = String.format("I have %.2f bugs to fix.", 44444.444);
System.out.println(fo);
String fo1 = String.format("I have %,.2f bugs to fix ", 2231323.23132);
System.out.println(fo1);
String fo2 = String.format("%,6.1f", 1323131123.133123213);
System.out.println(fo2);
String fo3 = String.format("%tc", new Date() );
System.out.println(fo3);
String fo4 = String.format("%tr", new Date() );
System.out.println(fo4);
String fo5 = String.format("%tA %tB %tC", new Date(), new Date(), new Date() );
System.out.println(fo5);
// 인자 하나로 
String fo6 = String.format("%tA %<tB %<tC", new Date() );
System.out.println(fo6);

------------------------------------------------------------------------

I have 44444.44 bugs to fix.
I have 2,231,323.23 bugs to fix
1,323,131,123.1
금 9월 05 10:55:14 KST 2008
10:55:14 오전
금요일 9월 20
금요일 9월 20


[작성자] devbible.tistory.com
[저작자] devbible.tistory.com
[참고코드 저작자] blog.naver.com/deepinheart


댓글