포맷팅클래스 : StringTokenizer 클래스, DecimalFormat 클래스, SimpleDateFormat 클래스, MessageFormat클래스

StringTokenizer 클래스

  • 구분자를 이용해서 문자열을 분리 및 관리함
  • 쌍따옴표안에 두개의 인자를 공백을 주고 넣을 수 있음
    • 아래 예시에서 토큰은 :,로 구분됨 (이름 제와피 나이 77 주소 서울 총6개)
1
2
3
4
5
6
7
public static void main(String[] args) {
String s = "이름:제와피, 나이:77, 주소:서울";
StringTokenizer tokens = new StringTokenizer(s, ": ,");
System.out.println("총 토큰의 개수 : "+tokens.countTokens());
}
//출력값
총 토큰의 개수 : 6




형식화클래스

  • Object객체의 toString()으로 형식화하기 어려운 두가지가 존재한다.

    1. 기본형데이터타입 중 숫자
    2. Date클래스
  • 이들을 읽기 쉬운 문자열로 바꾸는데 사용되는 클래스 = 형식화클래스.

  • 형식화클래스 종류

    1. DecimalFormat
    2. SimpleDateFormat
    3. MessageFormat




DecimalFormat 클래스

https://palpit.tistory.com/908

  • 사용방법

    1. 위의 표를 참고하여 사용할 패턴을 정하기
    2. 객체생성 : 생성자에 패턴문자 전달하기
    3. 만든 객체 사용하기
  • 예시 : double 1234.5를 원화로 형식화하기

1
2
3
4
5
6
7
8
9
10
11
double orgNum = 1234.5;

//원화기호표시를 `\`대신 `₩`으로 나타내주는 변수 symbol
String symbol = Currency.getInstance(Locale.KOREA).getSymbol();

//객체생성
DecimalFormat df = new DecimalFormat(symbol+"#,###.#");
System.out.println(df.format(orgNum));

//출력값
1,234.5




SimpleDateFormat 클래스

  • DateFormatter와의 차이점 : SimpleDateFormat클래스는 date객체에서 사용됨. 나머지는 동일.
  • 사용방법

    1. 위의 표를 참고하여 사용할 패턴을 정하기
    2. 객체생성 : 생성자에 패턴문자 전달하기
    3. 만든 객체 사용하기
  • 예시 :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//date 객체사용
Date now = new Date();

SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd");
System.out.println(sdf.format(now));

sdf = new SimpleDateFormat("yy년 MM월 dd일");
System.out.println(sdf.format(now));

sdf = new SimpleDateFormat("yyyy년의 D번째 날");
System.out.println(sdf.format(now));

//출력값
20-08-10
200810
2020년의 223번째 날




MessageFormat 클래스

  • +를 대신 :,{}를 사용하여 간단하게 표현가능하다.
  • 예시
1
2
3
4
5
6
7
8
9
10
11
12
13
public static void main(String[] args) throws ParseException {
String pattern = "이름:{0}, Java:{1}, HTML:{2}, Script:{3}";
String src = "영희:100:90:85,철수:90:80:70";
String[] studentInfo = src.split(",");
for(String student : studentInfo){

System.out.println(MessageFormat.format(pattern, student.split(":")));
}
}

//출력값
이름:영희, Java:100, HTML:90, Script:85
이름:철수, Java:90, HTML:80, Script:70

Comments