문자열을 구성하다 보면 String과 다른 String, 기본형, 객체들을 연결하는 경우가 많이 생긴다.
이런 경우 보통 ‘+’연산자를 사용한다
간단한 방식이라 자주 사용되기는 하지만 계속 +로 인해 지저분해 보이고
한눈에 파악하기 힘들다.
그래서 MessageFormat을 이용한다
MessageFormat은 문자열 구성 시 사용할 데이터를 연결 연산자(+)를 사용하지 않고
미리 데이터가 위치할 공간을 문자열에 표시한 뒤
별도로 데이터를 끼워 넣는 기능을 제공한다
String pattern=“Java: {0}점, JSP:{1}점, Oracle :{2}점;
MessageFormat.format() 메서드에 원본 문자열과 끼워 넣을 데이터를 전달
=> 끼워 넣을 데이터는 가변인자 형태이므로 순서대로 개수 제한 없이 전달
Stringresult=MessageFormat.format(pattern, 100,50,80);
System.out.println(result);
배열을 사용해 저장된 여러 개의 데이터를 전달할 수도 있다
int[] score = {100, 50, 80};
String result = MessageFormat.format(pattern, score[0], score[1], score[2]);
학생 여러 명의 점수를 메모장 등에 텍스트로 나열했다고 가정해 보자
Stringtext="홍길동:100:90:85, 이순신:80:80:80, 강감찬:100:50:60";
학생별로 구분된 문자열(,)을 기준으로 문자열 분리 = split() 메서드 활용
String[]studentInfo=text.split(",");
for(Stringstr:studentInfo) {
System.out.println(str);
학생 1명의 데이터 문자열을 ":" 기호 기준으로 다시 분리
String[] student = str.split(":");
MessageFormat.format() 메서드를 사용하여 포맷 적용하여 출력
System.out.println(
MessageFormat.format(pattern2, student[0], student[1], student[2], student[3]));
가변인자 부분의 데이터를 String[] 타입 그대로 전달하여 사용 가능
System.out.println( MessageFormat.format(pattern2, student));
ㅣ읽느라 수고 많으셨어요~ㅣ
부족한 글을 읽어주셔서 감사드립니다
아직 부족한 게 많으니
틀린 곳이 있다면
조언의 말씀 꼭 부탁드립니다!!!!
[JAVA] 자바_누적 함수/ 별만들기/짝수,홀수(반복문for문/if문 조건문) (0) | 2020.08.23 |
---|---|
[자바] 형식화 클래스_ SimpleDateFormat 클래스/날짜보기쉽게 만들어 주는 유용한 기능 (0) | 2020.08.22 |
[자바] 프로세스와 멀티 Thread(스레드/쓰레드)_메서드/ 상속/인터페이스 /run, start,synchronized (1) | 2020.08.20 |
[자바]예외(Exception)처리_try catch fianlly 구문/ try with resource 구문 (0) | 2020.08.19 |
[자바] 패키지 종류(유틸리티, 입출력, 유저인터페이스GUI패키지)_Date,Random,Math (0) | 2020.08.18 |