System.out.println(String.format("%,d", 123456789)); // 123,456,789
System.out.println(String.format("%,.0f", 123456789.0)); // 123,456,789
--------------------------------------------------------------------------------------------
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 |
[작성자] ybinside.com
[저작자] ybinside.com
[참고코드 저작자] blog.naver.com/deepinheart
'Back-End > Java' 카테고리의 다른 글
JAVA split, StringTokenizer 다수의 구분자 사용 (0) | 2012.09.06 |
---|---|
개발방법론!! - 싱글톤 패턴 (0) | 2012.08.28 |
Apache Common유틸로 숫자난수 생성 (0) | 2012.07.18 |
JSON.simple 라이브러리를 이용한 Java에서 JSON 포맷 문자열 파싱 (0) | 2012.05.07 |
JSON.simple (0) | 2012.05.07 |