String.format

프로그래밍/Java 2020. 1. 25. 23:20

String 클래스의 format 메서드를 이용하면 지정된 위치에 값을 대입해서 문자열을 만들 수 있다.

 

1.String format문의 형식

%[argument_index$][flags][width]conversion

예) String.format("%2$10s%1$10s", "KOREA", "JAPAN");

※ %와 conversion은 필수이며 나머지 arguent_index나 flags, width는 생략이 가능하다.

 

2. [argument_index]

- 파라미터의 인덱스

- 숫자와 $문자로 구성

- 1부터 시작

- '<'을 사용하여 직전의 파라미터와 같은 것임을 지정

 

3. [flag]

- '-'를 사용하면 출력하는 문자열이 왼쪽으로 정렬

- '-'를 빼면 출력하는 문자열이 오른쪽으로 정렬

 

4. [width]

- 원하는 길이를 지정

 

5. conversion

- %d : 10 진수

항목 내용
%10d 숫자만큼 문자열 좌측에 공백을 채워 숫자열 길이를 만듬
%-10d 숫자만큼 문자열 우측에 공백을 채워 숫자열 길이를 만듬
%010d 숫자만큼 문자열 좌측에 0을 채워 숫자열 길이를 만듬
%,d 1000 단위로 콤마(,) 처리를 함

  예) System.out.println(String.format("%10d%10d", 12345, 67890));

- %x or %X : 16진수

  예) System.out.println(String.format("%10x%10x", 2047, 2047));

- %o : 8진수

  예) System.out.println(String.format("%10o%10o", 2047, 2047));

- %f : 실수

항목 내용
%10f 숫자만큼 문자열 좌측에 공백을 채워 숫자열과 소숫점 이하의 자리를 포함하여 길이를 만듬
%-10f 숫자만큼 문자열 우측에 공백을 채워 숫자열과 소숫점 이하의 자리를 포함하여 길이를 만듬
%.2f (.) 우측에 해당하는 숫자만큼 소숫점 이하 자리를 반올림하여 길이를 만듬
%010.2f 숫자(10) 만큼 문자열 좌측에 0을 채우고 점(.) 우측에 해당하는 숫자만큼 소숫점 이하 자리를 반올림하여 길이를 만듬
%,.2f 1000 단위로 콤마(,) 처리를 하고, 점(.) 우측에 해당하는 숫자만큼 소숫점 이하 자리를 반올림하여 길이를 만듬

  예) System.out.println(String.format("%10.2f%10.2f", 100000.999f, 200000.999f));

- %s or %S : 문자열

항목 내용
%10s
%-10s 숫자만큼 문자열 우측에 공백을 채워 문자열 길이를 만듬
%10.2s (.) 우측에 숫자만큼 스트링을 자른 후, 점 좌측 숫자만큼 문자열 좌측에 공백을 채워 문자열 길이를 만듬
%-10.2s 점(.) 우측에 숫자만큼 스트링을 자른 후, 점 좌측 숫자만큼 문자열 우측에 공백을 채워 문자열 길이를 만듬

  예) System.out.println(String.format("%2$10s%1$10s", "KOREA", "JAPAN"));

- %c or %C : 문자

  예) System.out.println(String.format("%c", 'A'));

- %t or %T : 시간

항목 내용
%td Date를 입력 받으며 오늘 일자를 제공
%tm

Date를 입력 받으며 이번 달을 제공 

예) 12

%th

long형 시간 데이터를 입력 받으며 이번 달을 제공

예) 12월

%ty

Date를 입력 받으며 이번 약년을 제공

예) 20

%tD

Date를 입력 받으며 오늘 날짜(월/일/약년)를 제공

예) 01/25/20

%tY

Date를 입력 받으며 오늘 년을 제공

예) 2020

%tF

Date를 입력 받으며 오늘 날짜(월/일/년)를 제공

예) 2020-01-25

%fT long형 시간 데이터를 입력 받으며 현재시간(시:분:초)를 제공
%tH

long형 시간 데이터를 입력 받으며 시간(24시간 단위)를 제공

예) 23

%tl

long형 시간 데이터를 입력 받으며 시간(12시간 단위)을 제공

예) 11

%tM long형 시간 데이터를 입력 받으며 분을 제공
%tS long형 시간 데이터를 입력 받으며 초를 제공
%tL

long형 시간 데이터를 입력 받으며 밀리세건을 제공

예) 871

  예) System.out.println(String.format("날짜,시간 서식: %tY년 %<tm월 %<td일 %<tH시 %<tM분 %<tS초", new Date()));

 

 

참고 및 출처]

- 까딱이의 춤과 IT

- Blog Goooood.net

- 라이언 서버

- 자바킹 - IT 정복

- Java Document

 

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

enum 2  (3) 2018.01.28
enum 1  (0) 2018.01.02
쓰레드(Thread) 3  (0) 2017.11.20
쓰레드(Thread) 2  (0) 2017.11.04
쓰레드(Thread) 1  (0) 2017.11.03

WRITTEN BY
김치치즈스마일
세계정복!

,