728x90
print ( 줄 바꿈 없이 한 줄로 출력) / println ( 출력 후 줄 바꿈)
printf (서식이 있는 출력)
지시를 통해 변수의 값을 여러 가지 형식으로 바꿔서 출력할 수 있다.
Ex | |
System.out.printf ("출력 서식", 출력할 내용); |
%d | 정수형 출력 |
%s |
문자형 출력 |
%f | 실수형 출력 |
%c | 문자열 출력 |
%n | 줄 바꿈 |
%b | boolean 출력 |
printf 예제
출력 결과 :
줄을 바꿀수 있다. 방을 2년 계약했다. 나는 서울에 살고있다. |
String.format() 문자열 형식 설정하기
- 리턴되는 문자열의 형태를 지정하는 메소드
- 서식 문자열의 앞에 %를 붙여 문자열에 사용하면 그 위치에 변수의 값을 형식화 하여 대입 가능하다.
- 대문자나 소문자를 지정할 수 있는 서식 문자열에서 대문자 지정시 대문자로 변환된 값이 표시된다.(String.toUpperCase() 메소드를 호출한 결과와 동일)
포맷 지정 서식
다음은 format에 지정할 수 있는 주요 서식을 나타낸 표이다. % 문자와 함께 조합하여 사용한다.
[표1] 숫자 / 문자 변환
서식분류설명
'b', 'B' | 참 거짓 | boolean 값 지정 |
'h', 'H' | 16진수 | 16진수 지정 |
's', 'S' | 문자열 | 문자열 지정 |
'c', 'C' | 문자 | 문자 지정 |
'd' | 정수 | 10진 정수로 표시 |
'o' | 정수 | 8진 정수로 표시 |
'x', 'X' | 정수 | 16진 정수로 표시 |
'e', 'E' | 부동 소수점 | 10진수(가수와 진수)로 표시 |
'f' | 부동 소수점 | 10진수로 표시 |
'g', 'G' | 부동 소수점 | 10진수(반올림)로 표시 |
'a', 'A' | 부동 소수점 | 16진수(가수와 진수)로 표시 |
't', 'T' | 날짜, 시간 | 날짜 및 시간 서식 문자 앞에 지정 ex) %tH, %tM, %tS, ... |
'%' | 퍼센트 | 퍼센트 표시 |
'n' | 줄 구분 | 개행문자 표시 |
[표2] 날짜 / 시간 변환
서식분류설명
'H' | 시간 | 24시간 형식의 시(00-23) |
'I' (아이) |
시간 | 12시간 형식의 시(01-12) |
'k' | 시간 | 24시간 형식의 시(0-23) |
'l' (엘) |
시간 | 12시간 형식의 시(1-12) |
'M' | 시간 | 분(00-59) |
'S' | 시간 | 분초(00-60) |
'L' | 시간 | 밀리초(000-999) |
'N' | 시간 | 나노초(000000000-999999999) |
'z' | 시간 | UTC 오프셋. 출력은 "+HHMM" 또는 "-HHMM" 형식의 문자열. 여기서 +는 GMT 동쪽, -는 GMT 서쪽을 의미. HH는 GMT에서 시간 수를, MM은 GMT에서의 분 수를 나타냄. |
'Z' | 시간 | 시간대명 |
's' | 시간 | 1970년 1월 1일 시작 이후 초(00:00:00) |
'Q' | 시간 | 1970년 1월 1일 시작 이후 밀리초(00:00:00) |
'B' | 날짜 | 국가 고유의 전체 월명 ex) January, Februry, ... |
'b', 'h' | 날짜 | 국가 고유의 축약 월명 ex) Jan, Feb, ... |
'A' | 날짜 | 국가 고유의 전체 요일명 ex) Sunday, Monday, ... |
'a' | 날짜 | 국가 고유의 축약 요일명 ex) Sun, Mon, ... |
'C' | 날짜 | 세기 수(00-99) 연도를 100으로 나누고 정수로 자름. |
'Y' | 날짜 | 년(4자리), 음수 가능 |
'y' | 날짜 | 년(2자리, 00-99) |
'j' | 날짜 | 연도의 일(001-366) |
'm' | 날짜 | 월(01-12) |
'd' | 날짜 | 월의 일(01-31) |
'e' | 날짜 | 월의 일(1-31) |
'R' | 날짜/시간 | 초가 없는 24시간 형식(%H:%M과 동일) |
'T' | 날짜/시간 | 초가 있는 24시간 형식(%H:%M:%S와 동일) |
'r' | 날짜/시간 | 국가 고유의 AM/PM 형식 시간. 국가 고유의 시간 형식을 사용할 수 없는 경우, 디폴트는 POSIX 시간 AM/PM 형식(%I:%M:%S %p) |
'D' | 날짜/시간 | 날짜 형식(%m/%d/%y와 동일) |
'F' | 날짜/시간 | ISO 날짜 형식(%Y-%m-%d와 동일) |
'c' | 날짜/시간 | 국가 고유 형식의 날짜/시간 ex) %ta %tb %td %tT %tZ %tY → Sun Jul 20 16:17:00 EDT 1969 |
자주 사용되는 format 형태지정
%s의 대표적인 예시
%s | 해당위치의 스트링을 대체한다 | one → one |
%5s | 5만큼 문자열 좌측(+)에 공백을 채워 문자열 길이를 만든다 | one → _ _ _ _ _ one |
%-5s | 5만큼 문자열 우측(-)에 공백을 채워 문자열 길이를 만든다 | one → one _ _ _ _ _ |
%5.2s | 점(.)우측에 해당하는 숫자 2만큼 스트링을 자른 후 점(.)좌측 숫자 10만큼 문자열 좌측에 공백을 채워 문자열 길이를 만듦 |
one → _ _ _ _ _ on |
%-5.2s | 점(.)우측에 해당하는 숫자 2만큼 스트링을 자른 후 점(.)좌측 숫자 10만큼 문자열 우측에 공백을 채워 문자열 길이를 만듦 |
one → on _ _ _ _ _ |
%d의 대표적인 예시
%d | 해당위치의 숫자를 대체한다 | 123 → 123 |
%5d | 5만큼 문자열 좌측(+)에 공백을 채워 숫자열 길이를 만든다 | 123 → _ _ _ _ _ 123 |
%-5d | 5만큼 문자열 우측(-)에 공백을 채워 숫자열 길이를 만든다 | 123 → 123 _ _ _ _ _ |
%05d | 숫자(10)만큼 문자열 좌측에 0을 채워 숫자열 길이를 만든다 | 123 → 00000123 |
%,d | 1000 단위로 콤마(,)처리를한다 | 1234567 → 123 _ _ _ _ _ |
%f의 대표적인 예시
%f | 해당 위치의 숫자로 대체한다. 정수일 경우에는 정수만 나오며, 실수는 소숫점 6자리(기본)까지 포함한다. | [실수] 123f → 123.000000 [정수] 123 → 123 |
%12f | 숫자 12만큼 문자열 좌측(+)에 공백을 채워 숫자열(123)과 소숫점이하 자리를 포함하여 길이를 만든다 | 123f → _ _123.000000 |
%-12f | 숫자 12만큼 문자열 우측(-)에 공백을 채워 숫자열(123)과 소숫점이하 자리를 포함하여 길이를 만든다. | 123f → 123.000000 _ _ |
%.2f | 점(.)우측에 해당하는 숫자 2만큼 소숫점이하 자리를 반올림하여 길이를 만든다. | 123.456f → 123.46 |
%010.2f | 숫자 10만큼 문자열 좌측(+)에 0을 채우고 점(.)우측에 해당하는 숫자만큼 소숫점 이하의 숫자를 자른다 자른 부분은 반올림 한다 |
123.456f → 0000123.46 |
%,.2f | 1000 단위로 콤마(,) 처리를 하고, 점(.)우측에 해당하는 숫자 2만큼 소숫점이하 자리를 반올림하여 길이를 만든다. | 1234.567f → 1,234.57 |
%t의 대표적인 예시
%td | java.util.Date 를 입력받으며 오늘 일자(day)를 제공 | new Date() → (오늘 일자 day) 08 |
%tm | java.util.Date 를 입력받으며 이번 달(month)를 제공 | new Date() → (이번 달 month) 12 |
%th | long 형 시간데이터를 입력받으며 이번 달(month)를 제공 | new Date().getTime() or System.currentTimeMillis() → (이번 달 month) 12월 |
%ty | java.util.Date 를 입력받으며 이번 약년(year)를 제공 | new Date() → (이번 해 year) 14 |
%tD | java.util.Date 를 입력받으며 오늘 날짜(월/일/약년)를 제공 | new Date() → (오늘날짜 date 월/일/년) 12/08/14 |
%tY | java.util.Date 를 입력받으며 오늘 년을 제공 | new Date() → (이번 해 year) 2014 |
%tF | java.util.Date 를 입력받으며 오늘 날짜(월/일/년)를 제공 | new Date() → (오늘날짜 full) 2014-12-08 |
%tT | long 형 시간데이터를 입력받으며 현재시간(시:분:초)를 제공 | new Date().getTime() or System.currentTimeMillis() → (date의 시간 or 현재시간)15:19:50 |
%tH | long 형 시간데이터를 입력받으며 시간(24시간 단위)을 제공 | new Date().getTime() or System.currentTimeMillis() (long 형의 시간 데이터) → (date의 시간) 15 |
%tl | long 형 시간데이터를 입력받으며 시간(12시간 단위)을 제공 | new Date().getTime() or System.currentTimeMillis() (long 형의 시간 데이터) → (date의 시간 12시간단위) 3 |
%tM | long 형 시간데이터를 입력받으며 분을 제공 | new Date().getTime() or System.currentTimeMillis() (long 형의 시간 데이터) → (date의 분 Minute) 32 |
%tS | long 형 시간데이터를 입력받으며 초를 제공 | new Date().getTime() or System.currentTimeMillis() (long 형의 시간 데이터) → (date의 초) 52 |
%tL | long 형 시간데이터를 입력받으며 밀리세컨(1000분의 1초)를 제공 | new Date().getTime() or System.currentTimeMillis() (long 형의 시간 데이터) → (date의 1000분의1초) 932 |
출처 :
https://velog.io/@yu-jin-song/JAVA-%EB%AC%B8%EC%9E%90%EC%97%B4-%ED%98%95%EC%8B%9D-%EC%A7%80%EC%A0%95
728x90
'STUDY > JAVA' 카테고리의 다른 글
[JAVA] 데몬스레드란? (0) | 2023.03.03 |
---|---|
[JAVA] 컴파일, 빌드, 배포에 대해 이해하기 (0) | 2023.01.17 |
[JAVA] 참조변수 super, 생성자 super() (0) | 2022.12.05 |
[JAVA] 이름 붙은 반복문 (0) | 2022.12.04 |
[JAVA] 22-07-27 객체 문자정보(toString()) / 객체복제(clone()) (0) | 2022.07.27 |