728x90
반응형
개발을 하다 보면 쿼리에 맞추거나 화면에 파라미터 혹은 결과 값으로 리턴을 해줄 때 자리 수를 맞춰야 할 때가 있다. 예를 들자면 3자리 수의 리스트를 결괏값으로 내야 하는데 정수는 보통 1~999로 나타내어지기 때문에 아래와 같은 리스트로 나타내어진다.
1
2
3
4
5
...
997
998
999
하지만 우리가 원하는 것은 001, 002 의 자리 수가 맞춰진 숫자 리스트를 필요로 한다. 정확하게는 문자열 리스트가 맞겠다. 아래와 같이 말이다.
001
002
003
004
005
...
997
998
999
그렇다면 과연 어떤게 해야 두 번째와 같은 결과를 얻을 수 있을까? 답은 바로 간단하다. String 객체의 format을 이용하면 된다.
int kkul = 1;
System.out.println("padding int : %03d" , kkul);
// 결과값은 "padding int : 001" 이다.
어떻게 위와 같이 되는 것일까? 일반적으로 %d는 정수형 인자를 뜻하게 된다. 하지만 앞에 3이라는 숫자를 붙임으로써 자릿수를 맞추게 되어 문자열로 변경되게 되는 것이다. 즉, 자릿수에 0을 붙여서 통일하고 싶은 숫자를 3 대신 써서 작성하면 된다는 이야기다. 그래서 03을 %d 사이에 작성하면 된다. 그 외 자주 사용할만한 옵션들을 아래 간단하게 작성해두니 참고하면 좋을 것 같다.
1. %0nd 라고 기록하면 n자리 수만큼의 숫자(문자열)로 0을 패딩 하여 나타내준다.
2. 0 을 기록하지 않고 %nd 면 좌측에 숫자 0 대신에 공백 문자열로 패딩 하여 나타내준다.
정수형은 알아보았으나 실수형의 경우는 어떻게 할 것인가? 바로 소수점 문제와 같은 경우가 이에 해당할 것이다. 사실 위에서 언급된 %d와 같이 실수형은 %f로 대체될 것이고 그에 해당하는 옵션을 몇 가지 기록하여 나중을 위해 참고하도록 하자.
float kkul = 3.141592;
System.out.println("padding float : %06.2f" , kkul);
// 결과값은 "padding float : 003.14" 이다.
1. 기본 설정으로 %f는 %.6f 이다.
2. %06.2f 는 글자 길이 6, 소수점 아래 2자로 나타냅니다. 소수점(.)도 글자길이에 포함됩니다.
3. 소수점 아래는 반올림하여 출력됩니다.
4. %d와 동일하게 % 뒤의 숫자 부분 앞에 0을 붙이면, 왼쪽에 0을 채웁니다.
참 간단한 내용인데 막상 기억하지 못하면 온갖 이상한 코드를 같다 붙이기 쉽다. 기억하고 있다가 자세한 사용은 찾아보고서라도 사용하자.
728x90
반응형
'개발자의삶 > Java' 카테고리의 다른 글
JPA를 사용하는 이유와 JPA 는 어떻게 객체 지향적인가? (0) | 2025.03.17 |
---|---|
Java 버전별 특징 및 GC 의 변화 (0) | 2022.11.17 |
Java 의 람다(Lamda)를 활용한 스트림(Stream) 예제 (0) | 2022.05.11 |
댓글