본문 바로가기

프로그래밍/JAVA

[ JAVA ] 형식화 클래스

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