티스토리 뷰
자바에서 문자열 작업을 할때 사용할 수 있는 MessageFormat이라는 클래스가 있다. 특히 Template 문서에 동적으로 특정한 값들을 삽입할 때 이용하면 가독성을 높일 수 있다. 그리고 날짜나 숫자 형식을 제공하기 때문에 유용하다. 그럼 몇 가지 예제로 사용법을 알아 보겠다.
1. 가변인자를 이용한 문자열 삽입
String text = MessageFormat.format("My name is {0}", "무명소졸");
System.out.println(text);
//OUTPUT
//My name is 무명소졸
간단한 문자열에서는 오히려 불필요한 클래스 사용지 복잡해 보일지 모르겠다. 하지만 아래처럼 연결할 동적 문자열이 많을 경우 MesageFormat을 사용하면 코드 가독성을 높일 수 있다.
String name ="무명소졸";
String sex = "남자";
String age = "39";
String text1 = "나의 이름은 "+name+" 입니다. 성별은 "+sex+"이고 나이는 "+age+"입니다.";
System.out.println(text1);
String text2 = MessageFormat.format("나의 이름은 {0} 입니다. 성별은 {1}이고 나이는 {2}입니다."
, name, sex, age);
System.out.println(text2);
2. 객체배열를 이용한 문자열 삽입
가변 인수가 아닌 Object 배열 형태로 바인딩 될 값들을 전달 할 수 있다.
Object[] objects = new Object[]{"빨강", "초록", "파랑"};
String colors = MessageFormat.format("빛의 삼원색은 {0}, {1}, {2} 이다.", objects);
System.out.println(colors);
//빛의 삼원색은 빨강, 초록, 파랑 이다.
3. 타입 지원
MessageFormat 은 몇가지 내장 타입을 지원하는데 아래는 시간과 통화 표시에 대한 예제이다.
String printDate = MessageFormat.format("오늘 날짜는 {0, date} 입니다.", new Date());
String printTime = MessageFormat.format("현재 시간은 {0, time} 입니다.", new Date());
System.out.println(printDate)
System.out.println(printTime);
//오늘 날짜는 2020. 6. 15 입니다.
//현재 시간은 오후 12:33:26 입니다.
String str = MessageFormat.format("올해 성과금은 {0,number,currency} 입니다.", new Float(100_000_000));
System.out.println(str);
//올해 성과금은 ₩100,000,000 입니다.
4. Single quotes ( ' ) 의 사용
문자열 중 ' single quoties 를 사용하기 위해서는 escape 처리가 필요하다.
String text = MessageFormat.format("내가 제일 좋아하는 과일은 ''{0}'' 이다.", "수박");
System.out.println(text);
내가 제일 좋아하는 과일은 '수박' 이다.
'Java' 카테고리의 다른 글
Fork/Join Framework in Java (0) | 2020.06.16 |
---|---|
Random Integer List in Java8 (0) | 2020.06.08 |
Run vs Start in Java Thread (0) | 2020.05.22 |
[자바] 접근 제어자(Access modifier) (0) | 2018.03.19 |
[자바] 추상클래스와(abstract class) 와 인터페이스(interface) (0) | 2018.03.09 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크