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()));
참고 및 출처]
- 라이언 서버
'프로그래밍 > 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
- 김치치즈스마일
세계정복!