설 연수
하하호홓
설 연수
전체 방문자
오늘
어제
  • 분류 전체보기 (231)
    • Back-End (2)
      • Java (20)
      • JSP (13)
      • Spring (18)
      • Kotlin (0)
      • node.js (0)
    • Front-End (68)
      • JavaScript (19)
      • jQuery (39)
      • Angular (4)
      • HTML (5)
    • Dev-Ops (12)
      • Linux, Cloud (5)
      • docker, k8s (5)
      • ElasticSeach (2)
    • Other (33)
      • OOP (3)
      • 알고리즘 (2)
      • DB (12)
      • Git (1)
      • Swift (4)
    • Backup (65)

블로그 메뉴

    공지사항

    인기 글

    태그

    • CORS
    • angular 콜백
    • 크로스도메인
    • MYSQL
    • 404 error
    • 패스트캠퍼스
    • Redis
    • jquery invalid
    • angular4
    • angular2
    • jOOQ
    • Kafka
    • angular callback
    • RESTful
    • flex
    • INVALID
    • page not found
    • mongodb
    • Angular
    • docker

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    설 연수

    하하호홓

    Back-End/Java

    [Java] 자리수 맞추기 String.format()

    2012. 8. 13. 16:47

    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
      'Back-End/Java' 카테고리의 다른 글
      • JAVA split, StringTokenizer 다수의 구분자 사용
      • 개발방법론!! - 싱글톤 패턴
      • Apache Common유틸로 숫자난수 생성
      • JSON.simple 라이브러리를 이용한 Java에서 JSON 포맷 문자열 파싱
      설 연수
      설 연수

      티스토리툴바