이거 맘대로 되는 세상이 아니구만...

[java 팁] 오라클 LPAD 함수 대신 자바로 처리 . (숫자 자리수 채우기) 본문

java

[java 팁] 오라클 LPAD 함수 대신 자바로 처리 . (숫자 자리수 채우기)

바이홍 2010. 2. 1. 17:07
반응형

방법은 2가지가 있습니다. 포맷을 이용하는 방법과  값 길이를 이용하여 숫자 채우기

제가 필요한것은 엑셀업로드 할때 코드값이 예로 0001로 들어 올 경우 1로만 insert 가 되는 경우가 있어서요.

오라클의 lapd 함수가 있지만 자바도 포맷이란게 있어서리 알려 드립니다.

1번째 방법 숫자포맷방식

숫자 포맷을 이용한 방법입니다.
    int var = 3;
    1) String.format("%09d", var);    //000000003
    2) String.format("%09d", 1000101 ); // 001000101
    3) String.format("%*9d", 1000101 ); // **1000101
    4) String.format("%19d", 1000101 ).replace(" ", "^"); //   ^^^^^^^^^^^^1000101

1)번과 2)번 3)은 아시겠쬬 ^^, 문제는 숫자 포맷인지라 1로 채울려고 했으나 ㅠㅠ 19자리가 공뱁으로 들어 가는것을 알 수 있습네요.
그렇지만 포기 하지 마세용 ㅋㅋ 눈치 빠르신 분들은 알겠지만 replace 함수를 이용해서 " " 을"1"로 채우면 되겠죠 ^^ㅋ
전 머리가 요기밖에 안도네요.. 다른 방법 있을까용 ~~ ^^

2번째 방법 해당 값 길이를 구해서

                    int len = 9; // 9자리수
                    String var = "11111111"
                    int aaa = len - var.length();
                    if(aaa > 0){
                        for(int c=0; c < aaa; c++){
                            var = "0"+var;
                        }
                        System.out.println("var===> "+var);
                    }else{
                        System.out.println("var===> "+var);
                        System.out.println("머징 자리수보다 크넹");
                    }



1, 2번째 방법은 자리수 문제를 처리 해야 할거 같습니다.
9자리라고 했는데 ... 12자리면 .. 쩝 ;;;
처리를 해야 하는디 ... 일하면서 필요한거 정리 하는것인지라. 이런 이런

눈치가 이만저만이 아니네요 ㅋㅋㅋ

한번 체크하는 유틸을 만들어야겠어요.

시간이 더 많으면 더 정확하게 만들어서 올릴게용 ~~

근데 간단한거라 ㅋ

(.. )( ..) 스크랩은 자유
그러나 퍼간다는 매너는 필수 ㅇ.ㅇ
매너 없는 사람되지 맙시다!! ㅋ
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
반응형
Comments