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) 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자리면 .. 쩝 ;;;
처리를 해야 하는디 ... 일하면서 필요한거 정리 하는것인지라. 이런 이런
눈치가 이만저만이 아니네요 ㅋㅋㅋ
한번 체크하는 유틸을 만들어야겠어요.
시간이 더 많으면 더 정확하게 만들어서 올릴게용 ~~
근데 간단한거라 ㅋ
(.. )( ..) 스크랩은 자유
그러나 퍼간다는 매너는 필수 ㅇ.ㅇ
매너 없는 사람되지 맙시다!! ㅋ
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
반응형