Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
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
more
Archives
Today
Total
관리 메뉴

나의 IT일지

Format 클래스 본문

프로그래밍 언어/Java

Format 클래스

세레프 2023. 5. 24. 12:06

 자바에서는 개발자들이 개발할 때 사용하기 위한 기본 기능인 API가 구현되어 있으며, import를 통해 클래스를 호출해서 해당 클래스의 메서드를 사용한다. 그리고 유저들이 데이터의 출력형식을 지정할 수 있는 API가 있다.

 해당 API를 Format 클래스라고 하는데, Format 클래스숫자나 문자를 이용하는 출력 형식을 개발자가 임의적으로 형식을 설정할 수 있는 "java.text" 패키지에 있는 클래스로, 해당 클래스의 하위 클래스는 다음과 같다.

하위 클래스 설명
SimpleDataFormat 날짜 형식 변경
DecimalFormat  숫자 형식 변경
MessageFormat 문자 형식 변경
 

Format (Java Platform SE 8 )

Parses text from a string to produce an object. The method attempts to parse text starting at the index given by pos. If parsing succeeds, then the index of pos is updated to the index after the last character used (parsing does not necessarily use all cha

docs.oracle.com

 

java.text.SimpleDataFormat

 자바에서는 Data클래스와 Calendar클래스를 통해 시간을 다룰 수 있다. 하지만 Data클래스는 날짜나 시간을 한번에 출력하며, 출력하는 형식이 고정되어 있다. 그리고 Calendar클래스는 객체에 저장되어 있는 날짜와 시간의 정보를 추출하기 위해서 사용하기에, 형식을 만들어서 사용하기 어렵다.

 

Calendar클래스, Date클래스

자바는 프로젝트안에 패키지를 만들고 패키지 안에 클래스를 만들며, 클래스에 메서드와 필드를 구현한다. 즉, 패키지는 클래스를 모아놓은 것이며, import를 통해 호출해서 해당 패키지의 클래

my-it-diary.tistory.com

package pack0524;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Code4 {
	public static void main(String[] args) {
	Date day = new Date();
	}
}

  이렇게 형식을 변경할 수 없는 Date클래스의 단점을 보안하기 위해서, SimpleDataFormat클래스를 통해 날짜의 형식을 형식화해서 날짜를 표현한다. SimpleDataFormat클래스날짜의 형식을 원하는 형태로 출력하기 위한 클래스로, 나라마다 날짜를 출력하는 방식이 다르기 때문에 해당 나라의 날짜 출력형태를 만들어서 출력 하기 위해서 사용한다.

 

SimpleDateFormat (Java Platform SE 8 )

Parses text from a string to produce a Date. The method attempts to parse text starting at the index given by pos. If parsing succeeds, then the index of pos is updated to the index after the last character used (parsing does not necessarily use all charac

docs.oracle.com

 SimpleDataFormat클래스는 원하는 날짜 형식을 얻고 싶은 경우, 날짜의 형식을 형식화 하지만, Data클래스의 객체에 있는 날짜 정보를 사용한다. 그래서  SimpleDataFormat클래스의 사용방법은 다음과 같다.

  • 형식을 표현할 문자열 생성
    • String 변수 = "형식을 표현한 문자열"
형식 기호 의미 형식 기호 의미
Y a 오전 / 오후
M H 시간
d m
E 요일 s
  • 객체 생성
    • Date 변수 = new Date();
    • SimpleDateFormat 변수 = new SimpleDateFormat(형식을 표현한 문자열);
  • Date 객체의 날짜정보를 문자열로 만든 형식으로 출력 → 문자열의 형식으로 출력
    • 변수.format(Date객체);
package pack0524;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Code4 {

	public static void main(String[] args) {
	Date day = new Date();
	System.out.println(day);
		
	String today = "yyyy.MM.dd.E HH:mm:ss";
	
	SimpleDateFormat p4 = new SimpleDateFormat(today);
	System.out.println("금일 날짜 : "+p4.format(day));
	}

}

 

java.text.DecimalFormat 

 개발을 하면서 숫자를 특정 형식으로 출력해야 하는 경우가 생긴다. 하지만 형식 지정자를 사용해서 값을 불러온 뒤, "System.out.printf"메서드를 통해 특정 형식을 만들 수 있다. 하지만 형식 지정자는 다체롭게 형식을 만들기 힘들며, 같은 형식을 반복적으로 사용할 때, 일일히 만들어서 사용해야 한다.

package pack0523;

import java.text.DecimalFormat;

public class Code3 {
	public static void main(String[] args) {
		double arr[] = {1.3,3.33,124.243,242};
		
		for(int i = 0; i< arr.length;i++ ) {
			System.out.printf("%f\n",arr[i]);
		}
		System.out.println();
		for(int i = 0; i< arr.length;i++ ) {
			System.out.printf("-%f\n",arr[i]);
		}
	}
}

 이렇게 형식 지정자를 통해 값만 호출만 하는 단점을 보안하기 위해서, DecimalFormat클래스를 통해 숫자의 형식을 형식화해서 다양한 숫자 형식을 표현한다.  DecimalFormat클래스 숫자의 형식을 원하는 형태로 출력하기 위한 클래스로, 파일마다 숫자를 사용하는 방식을 다르게 지정하기 위해서 사용한다.

 

DecimalFormat (Java Platform SE 8 )

DecimalFormat is a concrete subclass of NumberFormat that formats decimal numbers. It has a variety of features designed to make it possible to parse and format numbers in any locale, including support for Western, Arabic, and Indic digits. It also support

docs.oracle.com

  • 형식을 표현할 문자열 생성
    • String 변수 = "형식을 표현한 문자열"
형식 표시 의미 형식 표시 의미
# 숫자 출력 0 숫자 출력, 숫자가 없으면 0으로 출력
, 콤마 출력 . 소수점 출력
- 음수 기호 출력 퍼센트 기호 출력
E 지수 기호 출력 ; 해당 표식을 기준으로 왼쪽 형식만 출력
  • 숫자형 변수, 객체 생성
    • 숫자타입 변수 = 리터널 값;
    • DecimalFormat 변수 = new DecimalFormat(형식을 표현한 문자열);
  • 변수에 저장되어 있는 숫자를 문자열로 만든 형식으로 출력 → 문자열의 형식으로 출력
    • 변수.format(숫자형 변수);
package pack0523;

import java.text.DecimalFormat;

public class Code3 {
	public static void main(String[] args) {
		double arr[] = {1.3,3.33,124.243,242};

		String pattern [] = {"###.###","000.000", "-###.###","000000.00%"};
		
		for(int p=0;p<pattern.length;p++) {
			DecimalFormat d = new DecimalFormat(pattern[p]); 
			System.out.println("<<<"+pattern[p]+">>>");
			for(int i = 0; i< arr.length;i++ ) {
				System.out.println(d.format(arr[i]));
			}
		}
	}
}

'프로그래밍 언어 > Java' 카테고리의 다른 글

Set 컬렉션  (0) 2023.05.26
컬렉션 프레임 워크  (0) 2023.05.25
기타 API 클래스  (0) 2023.05.23
Scanner 클래스  (0) 2023.05.22
LocalDateTime 클래스  (0) 2023.05.19
Comments