1. DecimalFormat
▶ 숫자를 형식화 하는 데 사용한다.
▶ 숫자 데이터를 정수, 부동소수점, 금액 등의 다양한 형식으로 표현할 수 있으며, 반대로 일정한 형식의 텍스트 데이터를 숫자로 쉽게 변환하는 것도 가능하다.
// 예시
double number = 1234567.89;
DecimalFormat df = new DecimalFormat("#.#E0");
String result = df.format(number); // 1.2E6
<DecimalFormat의 패턴에 사용되는 기호>
기호 | 의미 | 패턴 | 결과(1234567.89) |
0 | 10진수 (값이 없을 때는 0) | 0 0.0 0000000000.0000 |
1234568 1234567.9 0001234567.8900 |
# | 10진수 | # #.# ##########.#### |
1234568 1234567.9 1234567.89 |
. | 소수점 | #.# | 1234567.9 |
- | 음수부호 | #.#- -#.# |
1234567.9- -1234567.9 |
, | 단위 구분자 | #,###.## #,####.## |
1,234,567.89 123,4567.89 |
E | 지수기호 | #E0 0E0 ##E0 00E0 ####E0 0000E0 #.#E0 0.0E0 0.000000000E0 00.00000000E0 000.0000000E0 #.#########E0 ##.########E0 ###.#######E0 |
.1E7 1E6 1.2E6 12E5 123.5E4 1235E3 1.2E6 1.2E6 1.234567890E6 12.34567890E5 123.4567890E4 1.23456789E6 1.23456789E6 1.23456789E6 |
; | 패턴구분자 | #,###.##+;#,###.##- | 1,234,567.89+ (양수일 때) 1,234,567.89- (음수일 때) |
% | 퍼센트 | #.#% | 123456789% |
\u2030 | 퍼밀(퍼센트 x 10) | #.#\u2030 | 1234567890‰ |
\u00A4 | 통화 | \u00A4 #,### | ₩ 1,234,568 |
' | escape 문자 | '#'#,### ''#,### |
#1,234,568 '1,234,568 |
2. SimpleDateFormat
* SimpleDateFormat 사용 방법
① 먼저 원하는 출력형식의 패턴을 작성하여 SimpleDateFormat인스턴스를 생성
② 출력하고자 하는 Date인스턴스를 가지고 format(Date d)를 호출하면 지정한 출력형식에 맞게 변환된 문자열을 얻음
// 예시
Date today = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
// 오늘 날짜를 yyyy-MM-dd 형태로 변환하여 반환한다.
String result = df.format(today);
<SimpleDateFormat의 패턴에 사용되는 기호>
기호 | 의미 | 보기 |
G | 연대 (BC, AD) | AD |
y | 년도 | 2006 |
M | 월(1~12 또는 1월~12월) | 10 또는 10월, OCT |
w | 년의 몇 번째 주(1~53) | 50 |
W | 월의 몇 번째 주(1~5) | 4 |
D | 년의 몇 번째 일(1~366) | 100 |
d | 월의 몇 번째 일(1~31) | 15 |
F | 월의 몇 번째 요일(1~5) | 1 |
E | 요일 | 월 |
a | 오전/오후(AM, PM) | PM |
H | 시간(0~23) | 20 |
k | 시간(1~24) | 13 |
K | 시간(0~11) | 10 |
h | 시간(1~12) | 11 |
m | 분(0~59) | 35 |
s | 초(0~59) | 55 |
S | 천분의 일초(0~999) | 253 |
z | Time zone(General time zone) | GMT +9:00 |
Z | Time zone(RFC 822 time zone) | +0900 |
' | escape 문자(특수문자를 표현하는데 사용) | 없음 |
예제) parse(String source)를 사용하여 날짜 데이터의 출력형식을 변환하는 방법
3. ChoiceFormat
▶ 특정 범위에 속하는 값을 문자열로 변환해준다.
예제) 배열 사용
- limits는 범위의 경계값을 저장하는 데 사용하였고, grades는 범위에 포함된 값을 치환할 문자열을 저장하는데 사용되었다.
- 경계값은 double형으로 반드시 모두 오름차순으로 정렬되어 있어야 한다.
- 치환될 문자열의 개수는 경계값에 의해 정의된 범위의 개수와 일치해야한다.(일치하지 않으면 IllegalArgumentException발생)
예제) 패턴 사용
- 패턴은 구분자로 '#'와 '<' 두 가지를 제공하고, 'limit#value'의 형태로 사용한다.
- '#'는 경계값을 범위에 포함시키지만 '<'는 포함시키지 않는다.
4. MessageFormat
▶ 데이터를 정해진 양식에 맞게 출력할 수 있도록 도와준다.
▶ 데이터가 들어갈 자리를 마련해 놓은 양식을 미리 작성하고 프로그램을 이용해서 다수의 데이터를 같은 양식으로 출력할 때 사용하면 좋다.
▶ MessageFormat에 사용할 양식인 문자열 msg를 작성할 때 '{숫자}'로 표시된 부분이 데이터가 출력될 자리이다.
▶ '{숫자}' 자리는 순차적일 필요는 없고 여러 번 반복해서 사용할 수 있다.
예제1)
예제2)
'프로그래밍 > JAVA' 카테고리의 다른 글
[ JAVA ] Queue(큐) (0) | 2023.01.08 |
---|---|
[ JAVA ] Stack(스택) (0) | 2023.01.07 |
[ JAVA ] Calendar와 Date (0) | 2022.12.20 |
[ JAVA ] java.lang 패키지 - String클래스 (0) | 2022.11.27 |
[ JAVA ] java.lang 패키지 - Object클래스 (0) | 2022.11.26 |