형식화 클래스
DecimalFormat
- DecimalFormat을 이용하면 숫자 데이터를 정수, 부동소수점, 금액 등의 다양한 형식으로 표현할 수 있다.
- 반대로 일정한 형식의 텍스트 데이터를 숫자로 쉽게 변환도 가능하다.
- 형식화 클래스는 패턴을 정의하는 것이 전부다.
- DecimalFormat 사용법
double number = 1234567.89;
// 1.원하는 출력형식의 패턴을 작성하여 DecimalFormat 인스턴스를 생성
DecimalFormat df = new DecimalFormat("#.#E0");
// 2.출력하고자 하는 문자열로 format 메소드를 호출
String result = df.format(number);
SimpleDateFormat
- 날짜 데이터를 원하는 형태로 다양하게 출력
- 사용방법
- 원하는 출력 형식의 패턴을 작성하여 SimpleDateFormat 인스턴스를 생성
- 출력하고자 하는 Date 인스턴스를 가지고 format(Date d)를 호출
Date today = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String result = df.format(today);
//오늘 날짜를 yyyy-MM-dd 형태로 반환
parse(String source)
를 사용하여 날짜 데이터의 출력형식 변환 가능
- SimpleDateFormat의 parse(String source) 는 문자열 source를 날짜 Date 인스턴스로 변환해줌
DateFormat df = new SimpleDateFormat("yyyy년 MM월 dd일");
DateFormat df2 = new SimpleDateFormat("yyyy/MM/dd");
Date d = df.parse("2018년 10월 3일");
System.out.println(df2.format(d)); // 2018/10/03
- Date 인스턴스를 Calendar 인스턴스로 변환할 때는 Calendar클래스의 setTime()을 사용하면 된다.
Date And Time Patterns (시간과 날짜에 사용되는 패턴들)
ChoiceFormat
- ChoiceFormat은 특정 범위에 속하는 값을 문자열로 변환
- 연속적/불연속적인 범위의 값 처리에 유용(예를 들어 90점까지 A, 80점까지 B, ..)
- 패턴을 사용할 경우 limit#value 형태로 사용
public int someMethod(int score) {
double[] limits = {60, 70, 80, 90}; // 낮은 값부터 큰 값의 순서로 적어야함
// limits과 ㅎrades 간의 순서와 갯수를 맞춰야함
String[] grades = {"D", "C", "B", "A"};
ChoiceFormat form = new ChoiceFormat(limits, grades);
return form.format(score);
}
MessageFormat
- MessageFormat은 데이터를 정해진 양식에 맞게 출력할 수 있도록 도와준다
public void someMethod() {
String msg = "Name : {0}, Tel: {1}, age:{2}, birthday:{3}";
Object[] args = {"영수", "010-1111-1234", "28", "02-23"}
String result = MessageFormat.format(msg, args);
}
참조