[자바] .printf() 형식문자 사용하기

jadeco·2023년 7월 11일
0

개요

Java에서 System.out.printf 메서드는 형식화된 출력을 가능하게 해줍니다. 형식 문자는 출력할 데이터의 형식을 지정하는데 사용되며, 알맞게 사용하면 출력을 보다 원하는 대로 꾸밀 수 있습니다. 이 velog에서는 Java의 System.out.printf 메서드에서 사용되는 주요 형식 문자에 대해 소개하고 설명합니다.

형식문자 사용 예시


내용

1. 서론

- System.out.printf 메서드는 형식화된 출력을 제공하는 Java의 기능입니다.
- 형식 문자는 출력할 데이터의 형식을 지정하는데 사용됩니다.
- 정확하고 명확한 출력을 위해 형식 문자를 올바르게 사용하는 것이 중요합니다.

2. 정수 형식 문자

- %d: 10진수로 출력합니다. 예를 들어, System.out.printf("%d", 42)는 42를 출력합니다.
- %o: 8진수로 출력합니다. 예를 들어, System.out.printf("%o", 42)는 52를 출력합니다.
- %x 또는 %X: 16진수로 출력합니다. 예를 들어, System.out.printf("%x", 42)는 2a를 출력합니다.
- %,d: 천 단위 구분기호를 포함하여 출력합니다. 예를 들어, System.out.printf("%,d", 1000000)는 1,000,000을 출력합니다.
- %b: boolean 값을 true 또는 false로 출력합니다. 예를 들어, System.out.printf("%b", true)는 true를 출력합니다.

3. 실수 형식 문자

- %f: 부동 소수점 숫자로 출력합니다. 예를 들어, System.out.printf("%f", 3.14)는 3.140000을 출력합니다.
- %e 또는 %E: 지수 형식으로 출력합니다. 예를 들어, System.out.printf("%e", 1000000.0)는 1.000000e+06을 출력합니다.
- %.nf: 소수점 아래 n자리까지 출력합니다. 예를 들어, System.out.printf("%.2f", 3.14159)는 3.14를 출력합니다.
- %g 또는 %G: 유효 자릿수에 따라 %f 또는 %e 형식으로 출력합니다. 예를 들어, System.out.printf("%g", 0.000001)는 1.0e-6을 출력합니다.

4. 문자열 형식 문자

- %s: 문자열로 출력합니다. 예를 들어, System.out.printf("%s", "Hello")는 "Hello"를 출력합니다.
- %n: 개행 문자를 출력합니다. 예를 들어, System.out.printf("Line 1%nLine 2")는 "Line 1"과 "Line 2"를 각각 새로운 줄에 출력합니다.

5. Calendar 클래스의 데이터를 출력하려면 time의 약자인 t가 붙은 컨버전을 이용해야 한다.

- %tY: 현재의 날짜를 년도를 생략없이 출력한다. (ex. 2014)
- %ty: 현재의 날짜를 년도를 앞자리 생략하여 출력한다. (ex. 14)
- %tm: 현재의 날짜를 01~12(월) 형식으로 출력한다.
- %th: 현재의 날짜를 1~12(월) 형식으로 출력한다.
- %tb: 현재의 날짜를 영문 약자(월) 형식으로 출력한다. (한글 환경에서는 '숫자+월'로 출력되며 %tB와 차이가 없다.)
- %tB: 현재의 날짜를 영문(월) 형식으로 출력한다. (한글 환경에서는 '숫자+월'로 출력되며 %tb와 차이가 없다.)
- %td: 현재의 날짜를 01~31(일) 형식으로 출력한다.
- %te: 현재의 날짜를 1~31(일) 형식으로 출력한다.
- %tj: 현재의 날짜를 001~366(일) 형식으로 출력한다. (올해를 기준으로 몇 일이 경과했는지가 출력된다.)
- %ta: 현재의 날짜를 요일 영문 약자 형식으로 출력한다. (한글 환경에서는 '월/화/수/목/금/토/일'로 출력된다.)
- %tA: 현재의 날짜를 요일 영문 형식으로 출력한다. (한글 환경에서는 '월/화/수/목/금/토/일+요일'로 출력된다.)
- %tD: 현재의 날짜를 %tm/%td/%ty(월/일/년) 형식으로 출력한다.
- %tF: 현재의 날짜를 %tY-%tm-%td(년/월/일) 형식으로 출력한다.
- %tc: 현재의 날짜와 시간을 %ta %tb %td %tT %tZ %tY(요일 월(영문) 일(숫자) 몇시:몇분:몇초 타임존 년도)로 출력한다.
- %tH: 현재의 시간을 00~23(시) 형식으로 출력한다.
- %tk: 현재의 시간을 0~23(시) 형식으로 출력한다.
- %tI: 현재의 시간을 01~12(시) 형식으로 출력한다.
- %tl: 현재의 시간을 1~12(시) 형식으로 출력한다.
- %tM: 현재의 시간을 00~59(분) 형식으로 출력한다.
- %tS: 현재의 시간을 00~60(초) 형식으로 출력한다.
- %tz: 현재 시간의 타임 존을 출력한다.
- %tR: 현재의 시간을 %tH:%tM(몇시:몇분) 형식으로 출력한다.
- %tT: 현재의 시간을 %tH:%tM:%tS(몇시:몇분:몇초) 형식으로 출력한다.

5. 포맷 지정자(자리수, 정렬)

- %숫자s: 출력 필드의 폭을 숫자로 지정합니다. 예를 들어, System.out.printf("%10s", "Hello")는 " Hello"를 출력합니다.
- %숫자.숫자f: 출력 필드의 전체 폭과 소수점 이하 자릿수를 숫자로 지정합니다. 예를 들어, System.out.printf("%7.2f", 3.14159)는 " 3.14"를 출력합니다.
- %숫자d: (오른쪽 정렬) 출력할 최대 자릿수를 지정함. 
  예) %3d : 최대 3자리의 정수를 출력하되, 다 출력하고도 자리가 남으면 공백으로 채우고 오른쪽 정렬해 출력. 
  0 : (전체 자릿수가 지정된 경우) 출력하고 남는 자리를 공백 대신 0으로 출력. 
  예) %03d : 최대 3자리의 정수를 출력하되, 다 출력하고 남는 자리는 0으로 채우고 오른쪽 정렬해 출력. 
  - : (왼쪽 정렬) (전체 자릿수가 지정된 경우) 출력 후 남는 자리를 공백으로 채우고 왼쪽정렬해 출력. 
  예) %-4s : 최대 4자리의 문자열을 출력하되, 다 출력하고 남는 자리는 공백으로 채우고 왼쪽정렬해 출력.

7. 결론

- 형식 문자를 올바르게 사용하면 왼쪽 정렬, 오른족 정렬 등과 같이 원하는 형태로 출력할 수 있습니다.
- 추가적인 학습을 위해 예제 프로그램의 모든 출력 방법을 변경해보시길 추천합니다.
profile
당신도요

0개의 댓글