Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- MySQL
- VUE
- pagination
- MySQL시작하기
- CloutNative
- Seek_Keyset
- String
- springMVC
- Postman
- minikube
- appleM1
- offset
- Lombok
- NullPointerException
- MYSQL에러
- wappalyzer
- 이클립스
- Java
- 스프링에러
- restful api
- frontend
- spring
- K8S
- gradle
- SpringBoot
- windows10
- DB생성
- intellij
- SQL
- 우분투에war배포
Archives
- Today
- Total
미운 오리 새끼의 우아한 개발자되기
[자바의 정석]MessageFormat 본문
데이터를 정해진 양식에 맞게 출력할 수 있도록 도와주는 MessageFormat이 있다. 예를 들어, 고객들에게 보낼 안내문을 출력할 때, 안내문 양식에 받는 사람의 이름과 같은 데이터만 달라지도록 할 때 사용된다. 그리고 parse를 이용하면 지정된 양식에서 필요한 데이터만 손쉽게 추출할 수도 있다.
개인적으로 실무에서는 고객 안내 이메일이나, 문자메세지 혹은 로그 찍을 때 사용했던 기억이 있다. 알아두면 편리해서 기록해본다.
import java.text.MessageFormat;
public class MessageFormatEx1 {
public static void main(String[] args) {
String msg = "Name: {0} \nTel: {1} \nAge: {2} \nBirthday: {3}";
// arguments의 인덱스 0부터 msg의 {숫자} 안에 들어간다.
Object[] arguments = {
"이자바", "02-123-4567", "29", "08-06"
};
String result = MessageFormat.format(msg, arguments);
System.out.println(result);
}
}
MessageFormat의 생성자에 String pattern이 들어가는 경우에 대한 java doc 설명은 아래와 같다.
Constructs a MessageFormat for the default FORMAT locale and the specified pattern. The constructor first sets the locale, then parses the pattern and creates a list of subformats for the format elements contained in it. Patterns and their interpretation are specified in the class description.
import java.text.MessageFormat;
public class MessageFormatEx3 {
public static void main(String[] args) throws Exception {
String[] data = {
"INSERT INTO CUST_INFO VALUES ('이자바', '02-123-1234', '24', '02-22');",
"INSERT INTO CUST_INFO VALUES ('김프로', '02-333-2222', '22', '02-11');",
};
String pattern = "INSERT INTO CUST_INFO VALUES ({0}, {1}, {2}, {3});";
MessageFormat mf = new MessageFormat(pattern);
for(int i=0; i < data.length; i++) {
// parse를 통해 pattern에서 필요한 데이터만 추출할 수 있다.
Object[] objs = mf.parse(data[i]);
for(int j=0; j < objs.length; j++) {
System.out.print(objs[j] + ",");
}
System.out.println();
}
}
}
예제 코드 ref: 자바의 정석 3판 예제 10-18, 10-20
'Java > Java 기본기' 카테고리의 다른 글
[Java] 진법 변환 (0) | 2022.02.23 |
---|---|
[자바의 정석] Instant, LocalDateTime과 ZonedDateTime 차이 (0) | 2022.02.20 |
[자바의 정석] ChoiceFormat (0) | 2022.02.20 |
[Java] 객체지향 5원칙 - Single Responsibility Principle (0) | 2021.12.05 |
[Java] String 사용할 때 주의점 (4) | 2020.09.19 |