ChoiceFormat
- 특정 범위에 속하는 값을 문자열로 변환(범위에 따른 정수를 문자로 표현 A, A+, B B+..)
예제1)
import java.text.ChoiceFormat;
public class ChoiceFormatEx1 {
public static void main(String[] args) {
double[] range = {60, 65, 70, 75, 80, 85, 90, 95};
String[] grades = {"D", "D+", "C", "C+", "B", "B+", "A", "A+"};
double[] scores = { 100, 86.6, 70, 60.5, 65.5, 78.6, 93, 80.4 };
ChoiceFormat form = new ChoiceFormat(range,grades);
for(int i=0;i<scores.length;i++)
System.out.println(scores[i]+":"+form.format(scores[i]));
}
}
- range 배열은 범위의 경계값을 저장하는 데 사용(반드시 double형, 오름차순 정렬)
- grades는 범위에 포함된 값을 치환할 문자열을 저장하는 데 사용
- ChoiceFormat을 생성할 때는 -> (경계값, 문자열)
- format( )을 사용해서 문자열로 반환!
<출력결과>
100.0:A+
86.6:B+
70.0:C
60.5:D
65.5:D+
78.6:C+
93.0:A
80.4:B
예제2)
import java.text.ChoiceFormat;
public class ChoiceFormatEx2 {
public static void main(String[] args) {
String pattern = "60#D|70#C|75#C+|80<B|85#B+|90#A|95#A+";
int[] scores = { 90, 80, 88, 70, 52, 60, 95 };
ChoiceFormat form = new ChoiceFormat(pattern);
for(int i=0;i<scores.length;i++)
System.out.println(scores[i]+":"+form.format(scores[i]));
}
}
- 위의 예제1을 패턴을 사용하도록 변경!(위의 예제에서 range와 grades의 배열 대신에 패턴을 사용)
- 패턴은 구분자로, ‘#’와 ‘<’ 두가지를 제공하는데 ‘#’는 경계값에 포함시키지만 ‘<’는 포함시키지 않음
<출력결과>
90:A
80:C+
88:B+
70:C
52:D
60:D
95:A+
MessageFormat
- 데이터를 정해진 양식에 맞게 출력할 수 있도록 도와줌
- 양식을 미리 작성하고, 프로그램을 이용해서 다수의 데이터를 같은 양식으로 출력할 때 사용하면 좋음
import java.text.MessageFormat;
public class MessageFormatEx1 {
public static void main(String[] args) {
String msg = "Name: {0}\nTel: {1}\nAge: {2}\nBirthday: {3}";
Object[] argumemts = {"이자바","02-123-4567","30","11월11일"};
String result = MessageFormat.format(msg, argumemts);
System.out.println(result);
}
}
- MessageFormat에 사용할 양식인 문자열 msg을 작성할 때 {숫자} 이 부분이 데이터가 출력될 자리
- 양식에 들어갈 데이터는 객체배열인 arguments에 지정되어 있다.
-> 객체 배열이라서 String이외에도 다른 객체들이 지정될 수 있음
<출력값>
Name: 이자바
Tel: 02-123-4567
Age: 30
Birthday: 11월11일
'Java' 카테고리의 다른 글
BufferedReader, BufferedWriter, StringTokenizer (0) | 2022.01.17 |
---|---|
재귀호출( recursive call) (0) | 2022.01.13 |
Java.time 패키지 (0) | 2022.01.01 |
Math클래스의 round와 random 메소드 (0) | 2021.12.29 |