Format 클래스는 원하는 문자열로 조합하는 과정을 쉽게 해준다.
java.text 패키지에 포함되어 있고, 다양한 클래스들을 제공한다.
1. 숫자 형식 클래스 DecimalFormat
DecimalFormat 은 숫자 데이터를 원하는 형식으로 표현하기 위해 사용된다.
기호 |
의미 |
패턴 예시 |
1234567.89 변환 결과 |
0 |
10 진수(빈자리는 0으로 채움) |
0 0.0 0000000000.00000 |
1234568 1234567.9 0001234567.89000 |
# |
10 진수(빈자리는 채우지 않음) |
# #.# ##########.##### |
1234568 1234567.9 1234567.89 |
. |
소수점 |
#.0 |
1234567.9 |
- |
음수 기호 |
+#.0 -#.0 |
+1234567.9 -1234567.9 |
, |
단위 구분 |
#,###,0 |
1,234,567,9 |
E |
지수 문자 |
0.0E0 |
1.2E6 |
; |
양수와 음수의 패턴을 모두 기술할 경우, |
+#,### ; -#,### |
+1,234,568(양수일 때) -1,234,568(음수일 때) |
% |
100을 곱한 후에 % 문자를 붙임 |
#.#% |
123456789% |
\u00A4 |
통화 기호 |
\u00A4 #,### |
\ 1,234,568 |
적용할 패턴을 선택했다면, DecimalFormat 생성자 매개값으로 지정해서 객체를 생성하면 된다.
그리고 나서 format() 메소드를 호출해서 패턴이 적용된 문자열을 얻으면 된다.
DecimalFormat df = new DecimalFormat(“#,###.0”);
String result = df.format(1234567.89);
2. 날짜 형식 클래스 SimpleDateFormat
Date 클래스의 toString() 메소드는 영문으로 된 날짜를 리턴하는데, 만약 특정 문자열 포맷으로 얻으려면 java.text.SimpleDateFormat 클래스를 이용한다.
SimpleDateFormat의 패턴 작성에 사용되는 기호
패턴 문자 |
의미 |
패턴 문자 |
의미 |
y |
년 |
H |
시(0 ~ 23) |
M |
월 |
h |
시(1 ~ 12) |
d |
일 |
K |
시(0 ~ 11) |
D |
월 구분이 없는 일 (1 ~ 365) |
k |
시(1 ~ 24) |
E |
요일 |
m |
분 |
a |
오전 / 오후 |
s |
초 |
w |
년의 몇 번째 주 |
S |
밀리세컨드 ( 1 / 1000 초) |
W |
월의 몇 번째 주 |
자릿수에 맞게 기호를 반복해서 작성할 수 있다. (yyyy년, MM, dd) 이 패턴을 SimepleDateFormat 의 생성자의 매개값으로 지정하새 객체를 생성하면 된다.
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy년 MM월 dd일”);
String strDate = sdf.format(new Date());
System.out.println(strDate);
3. 문자열 형식 클래스 MessageFormat
데이터를 파일에 저장, 네트워크로 전송 시, 데이터베이스 SQL 문을 작성 시
일정한 형식의 문자열을 사용한다.
MessageFormat 클래스를 사용하면 문자열에 데이터가 들어갈 자리를 표시해 두고,
프로그램이 실행하면서 동적으로 데이터를 삽입하여 문자열을 완성 시킬 수 있다.
예) 회원 정보 출력
회원 ID : kephi
회원 이름 : 케피
회원 전화 : 010-1234-5678
만약 각각 정보가 id, name, tel 변수에 저장되어 있다면 아래와 같이 출력할 수 있다.
String result = “회원 ID : ”+ id + “\n회원 이름 : ” + name + “ \n회원 전화 : ” + tel;
MessageFormat 클래스 사용
String message = “회원 ID : {0} \n회원 이름 : {1} \n회원 전화 : {2}”;
String result = MessageFormat.format(message, id, name, tel);
MessageFormat은 정적 메소드 format() 을 호출해서 완성된 문자열을 리턴한다.
format의 첫 번째 매개 값은 매개 변수화된 문자열을 지정하고,
두 번째 이후의 매개 값은 인덱스 순서에 맞게 값을 나열한다. (배열을 대신 대입할 수도 있다.)
String text = “회원 ID : {0} \n회원 이름 : {1} \n회원 전화 : {2}”;
Object[] arguments = { id, name, tel };
String result = MessageFormat.format(text, arguments); // 배열로 전달!
System.out.println(result);
'Java 기본 문법 - 참조 서적 [이것이 자바다 - 한빛미디어] > 9. 기본 API 클래스' 카테고리의 다른 글
16. Java 자바 [API] - java.time 패키지 (0) | 2020.10.08 |
---|---|
14. Java 자바 [API] - Date, Calendar 클래스 (0) | 2020.09.29 |
13. Java 자바 [API] - Math, Random 클래스 (0) | 2020.09.29 |
12. Java 자바 [API] - Wrapper (포장) 클래스 (0) | 2020.09.29 |
11. Java 자바 [API] - Arrays 클래스 (0) | 2020.09.29 |