Java - SimpleDateFormat,MessageFormat
2020. 7. 2. 22:19ㆍJava
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Ex {
public static void main(String[] args) throws ParseException{
/*
* SimpleDateFormat 클래스
* Date 타입 객체 (날짜 및 시각 정보)에 대한 형식화 클래스
* format() 메서드 : Date 타입 객체를 특정 패턴에 따라 문자열로 변환하여 리턴
* parse() : 문자열을 특정 패턴에 따라 Date 타입 객체로 변환하여 리턴
*
*/
String source="2020년 06월 29일";
//SimpleDateFormat 객체 생성시, 원본 문자열에 대한 형식을 지정
SimpleDateFormat sdf=new SimpleDateFormat("yyyy년 MM월 dd일");
//지정된 형식에 따라 원본 데이터(문자열)을 읽어와서 Date타입 객체로 리턴
Date parseDate=sdf.parse(source);
//"2020년 6월 29일"문자열을 읽어들여 Date 타입으로 관리하게 되면
//실제 날짜 정보를 갖는 Date 객체가 사용가능해짐(요일 등의 추가 정보 포함됨)
System.out.println(parseDate);
//현재 날짜 정보가 "Mon Jun 29 00:00:00 KST 2020" 형식으로 Date 객체에 저장되어있을 때
//쉽게 알아 볼수 있는 대한민국 날짜 표기 방식으로 변환하기 위해
//format() 메서드 적용하기 위한 형식문자 생성
SimpleDateFormat sdf2=new SimpleDateFormat("yyyy년 MM월 dd일(EEEE) HH:mm:ss");
//생성된 형식 문자를 사용하여 Date 타입 객체를 문자열로 변환
String formatStr=sdf2.format(parseDate);
System.out.println(formatStr);
}
}
import java.text.MessageFormat;
public class Ex2 {
public static void main(String[] args) {
/*
* MessageFormat 클래스
* 문자열 구성 시, 사용할 데이터를 연결연사자(+)를 사용하지 않고
* 미리 데이터가 위치할 공간을 문자열에 표시한 뒤
* 별도로 데이터를 끼워넣는 기능을 제공
*/
String pattern="Java : {0}점, JSP : {1}점, Oracle : {2}점";
// //MessageFormat.format() 메서드에 원본 문자열과 끼워넣을 데이터를 전달
// //끼워넣을 데이터는 가변인자 형태이므로 순서대로 갯수 제한없이 전달
// String result=MessageFormat.format(pattern, 100,50,80);
//배열을 사용하여 저장된 여러개의 데이터를 전달할 수도 있다.
// int[] score= {100,50,80};
//
// String result=MessageFormat.format(pattern, score[0],score[1],score[2]);
//기본 데이터 타입이 아닌 Wrapper 클래스 타입으로 배열 생성시
//배열 자체를 그대로 가변인자에 전달하여 사용가능
Integer[] score= {100,50,80};
String result=MessageFormat.format(pattern, score);
System.out.println(result);
System.out.println("-------------------------------------");
String pattern2="이름 : {0}, Java : {1}점, JSP : {2}점, Oracle : {3}점";
//학생 여러명의 점수를 메모장 등에 텍스트로 나열했다고 가정
String text="홍길동:100:90:85,이순신:80:80:80,강감찬:100:50:60";
//학생별로 구분된 문자열(,)을 기준으로 문자열 분리= split() 메서드 활용
String[] studentInfo=text.split(",");//분리된 결과를 String[]타입으로 리턴
for(String s:studentInfo) {
// System.out.println(s);
//학생1명의 데이터 문자열을 ":" 기호 기준으로 다시 분리
String[] student=s.split(":");
// System.out.println(MessageFormat.format(pattern2, student[0],student[1],student[2],student[3]));
//가변인자 부분의 데이터를 String[]타입 그대로 전달하여 사용가능
System.out.println(MessageFormat.format(pattern2, student));
}
}
}
|
cs |
간단한 날짜를 정보로 나타내는 클래스와 문자를 출력할 시 미리 출력 형식을 정해 놓고 따로 + 연결 연산자를 사용하지 않고 데이터를 형식에 끼워 넣는 클래스를 배워보았다. 정해진 형식이 필요하고 표시해야 할 데이터가 많으면
아주 유용하게 사용할 수있을 클래스이니깐 잘 외워두었다가 이런 클래스가 있었지 하며 바로 사용할 수 있게
기억해 놓아야 겠다.
'Java' 카테고리의 다른 글
Java - 예외(Exception),try~catch (0) | 2020.07.02 |
---|---|
Java - 정규표현식,Pattern,Matcher (0) | 2020.07.02 |
Java- enum (0) | 2020.07.01 |
Java - Date,time,Calendar (0) | 2020.06.30 |
Java - Generic (0) | 2020.06.30 |