코린이의 소소한 공부노트

형식화 클래스 본문

Java

형식화 클래스

무지맘 2022. 10. 21. 00:58

[형식화 클래스]

- 숫자와 날짜를 원하는 형식으로 쉽게 출력 가능하게 해주는 클래스

- java.text패키지의 DecimalFormat, SimpleDateFormat 클래스가 이에 해당된다.

 

[DecimalFormat 클래스]

1. 숫자를 형식화할 때  사용하는 클래스(숫자 -> 형식 문자열)

double num = 1234567.89;
DecimalFormat df = new DecimalFormat("#.#E0");
String s = df.format(num); // s = "1.2E6"
// 1234567.89 -> 1.2*10^6

 

2. 패턴에 쓰이는 기호

1) 0: 10진수(값이 없을 때, 즉 빈자리는 0으로 채움)

1234567.89
패턴 -> 결과
0 -> 1234568
0.0 -> 1234567.9
0000000000.0000 -> 0001234567.8900

2) #: 10진수(0과는 다르게 빈자리는 채우지 않음)

1234567.89
패턴 -> 결과
# -> 1234568
#.# -> 1234567.9
##########.#### -> 1234567.89

3) E: 지수 기호

1234567.89
패턴 -> 결과
#.#E0 -> 1.2E6
0.0E0 -> 1.2E6
0.000000000E0 -> 1.234567890E6
00.00000000E0 -> 12.34567890E6
#.#########E0 -> 1.23456789E6
##.########E0 -> 1.23456789E6

 

3. 특정 형식의 문자열을 숫자로 변환할 때도 사용한다.(형식 문자열 -> 숫자)

// 형식이 있는 문자열 -> 숫자
DecimalFormat df = new DecimalFormat("#,###.##");
Number num = df.parse("1,234,567.89"); // Number는 모든 숫자 래퍼 클래스의 최고 조상
double d = num.doubleValue(); // d = 1234567.89

// Integer.parseInt() 등은 콤마(,)가 포함된 문자열을 숫자로 변환하지 못하기 때문에
// Number 클래스 이용

 

[SimpleDateFormat 클래스]

1. 날짜와 시간을 다양한 형식으로 출력할 수 있게 해 준다.

Date today = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); // mm: minute
String s = df.format(today); // s = "2022-10-20"

 

2. 날짜 패턴에 쓰이는 기호

 

3. 특정 형식으로 되어있는 문자열에서 날짜와 시간을 뽑아낼 수 있다.

DateFormat df1 = new SimpleDateFormat("yyyy년 MM월 dd일");
DateFormat df2 = new SimpleDateFormat("yyyy/MM/dd");
try {
    Date d = df1.parse("2022년 12월 25일");
    String s = df2.format(d); // s = "2022/12/25"
} catch (ParseException e) { // 예외 처리 필수(checked exception)
    System.out.println("형식에 맞는 문자열 입력하기");
}

 

4. 시간 패턴에 쓰이는 기호

 

'Java' 카테고리의 다른 글

ArrayList 클래스  (0) 2022.10.27
컬렉션 프레임워크  (0) 2022.10.26
캘린더 클래스  (0) 2022.10.12
문자열의 여러 가지 변환, 오토박싱, 언박싱  (0) 2022.10.11
래퍼 클래스, 넘버 클래스  (0) 2022.10.11