본문 바로가기
개발자 양성과정 필기노트/JAVA

데이터 형식화 클래스

by jono 2021. 11. 13.

     I. 날짜 / 시간 데이터 형식화     


연도 - y / yy / yyyy 시 - H (24) / h (12)
월 - M 분 - m
일 - d 초 - s
요일 - E / EEEE 오전/오후 - a

 

1. SimpleDateFormat 활용하여 Date 객체의 형식을 지정하기

1) 날짜형식을 지정하여 String형으로 저장함.

String pattern = "yyyy년 MM월 dd일 EEEE HH:mm:ss";

 

2) SimpleDateFormat의 객체 생성시 날짜형식을 매개변수로 전달한다.

SimpleDateFormat sdf = new SimpleDateFormat(pattern);

 

3) SimpleDateFormat의 format()메서드를 호출하고 매개변수에 날짜데이터를 전달한다.

Date date = new Date();
System.out.println(sdf.format(date)); //2021년 11월 13일 토요일 14:53:45

2. DateTimeFormatter 활용하여 Local_____클래스 객체의 형식을 지정하기

- LocalDate , LocalTime, LocalDateTime 객체의 형식을 지정할 때 사용한다.

 

1) 시간형식을 문자열로 저장

String pattern2 = "a hh시 mm분 y-MM-dd";

 

2) DateTimeFormatter의 ofPattern() 메서드 사용하여 시간형식을 저장함.

DateTimeFormatter dtf = DateTimeFormatter.ofPattern(pattern2);

 

3) 시간데이터객체의 format() 메서드를 호출하여 DateTimeFormatter객체를 전달

LocalDateTime now2 = LocalDateTime.now();
System.out.println(now2.format(dtf)); // 오후 02시 53분 2021-11-13

 


     II. 숫자 데이터 형식화     


DecimalFormat

- 숫자데이터를 형식화하는 클래스.

 

# 메서드

1. String format(double) - 특정 형식으로 숫자를 표현하고자 할 때.

double dNum = 1234.5000;

//1. 형식을 지정하여 문자열로 저장한다.
String pattern = "$0,000.00"

//2. DecimalFormat의 객체를 생성하고 형식을 전달한다.
DecimalFormat df = new DecimalFormat(pattern);

//3. DecimalFormat의 format()메서드 호출하고 숫자데이터를 전달한다.
System.out.println(df.format(dNum)); //$1,234.50

 

2. parse(String) - 기본데이터타입의 숫자데이터로 변환할 때

- 변환하고자 하는 데이터타입으로 강제 형변환 처리를 해줘햐함.

- 주의) Wrapper클래스의 parseXXX() 메서드는 사용불가하다.

DecimalFormat df = new DecimalFormat(pattern);
String formedDouble = df.format(dNum); //앞의 작업결과 $1,234.50 값인 경우

//1. DecimalFormat의 parse(String)메서드 사용
double parseNum = (double)df.parse(formedDouble);
System.out.println(parseNum); //1234.5 - double형으로 변환완료

 

3. applyPattern() - 기존 패턴에서 새로운 패턴으로 교체하여 적용함.

 


     III. 문자 데이터 형식화     


MessageFormat

1. 데이터가 들어갈 부분을 {index} 형태로 표시한 형식을  String으로 저장함.

String pattern = "이름: {0}, 나이: {1}, 주민번호: {2}";

2. MessageFormat.format(형식,데이터1, 데이터2...) 지정하면 끝!

//데이터로 사용할 변수 선언
String name="홍길동";
String jumin="901010-1234567";
int age =20; 

//MessageFormat.format(형식, 데이터1, 데이터2,...)
String formatStr = MessageFormat.format(messagePattern, name,age,jumin);
System.out.println(formatStr);

 

- 배열에 저장된 데이터를 형식화해서 출력하기

//1. 배열에 저장된 데이터
Person p1=new Person("홍길동",20,"901010-1234567");
Person p2=new Person("이순신",44,"771122-1212121");
Person p3=new Person("강감찬",35,"830101-1231231");
Person[] pArr= {p1,p2,p3};

//반복문으로 접근하고 getter를 별도로 정의하여 접근함.
for (int i = 0; i < pArr.length; i++) {
	String arrName = pArr[i].getName();
	int arrAge = pArr[i].getAge();
	String arrJumin=pArr[i].getJumin();
		
	String arrFormat = MessageFormat.format(messagePattern, arrName, arrAge,arrJumin);
	System.out.println(arrFormat);
}

 


     IV. 정규표현식 Regex     


- 나중에..

 

 

'개발자 양성과정 필기노트 > JAVA' 카테고리의 다른 글

멀티쓰레딩  (0) 2021.11.13
사용자 정의 예외  (0) 2021.11.13
BigInteger / BigDecimal  (0) 2021.11.13
Enum  (0) 2021.11.13
JFrame 이벤트처리하는 5가지 방법  (0) 2021.11.02

댓글