println()은 변수의 값을 그대로 출력한다. 따라서 값을 변환하지 않고서는 다른 형식으로 출력할 수 없다. 이를 보완하는 것이 printf()이다.
printf()는 지시자(specifier)를 통해 변수의 값을 여러 가지 형식으로 변환하여 출력하는 기능을 가지고 있다.
printf() 지시자
- %b : boolean 형식으로 출력
- %d : 10진(decimal) 정수의 형식으로 출력
(+) %5d : 오른쪽 맞춤 5자리, %-5d: 왼쪽 맞춤 5자리, %05d: 오른쪽 맞춤 5자리 + 빈공간은 0으로 표시
- %o : 8진(octal) 정수의 형식으로 출력
- %x, %X : 16진(hexa-decimal) 정수의 형식으로 출력(%X는 16진수에 사용되는 접두사와 영문자를 대문자로 출력)
(+) %#x,%#X,%#o 처럼 #를 사용하면 접두사 0x와 0이 각각 붙어서 출력된다.
(+) 10진수를 2진수로 출력해주는 지시자는 없으므로 Inter.toBinaryString(int i)를 사용하여 2진수 문자열로 바꾸어 %s로 출력해야 한다.
- %f : 부동 소수점(floating-point)의 형식으로 출력, 기본적을 소수점 아래 6자리까지만 출력하고 나머지는 반올림.
(+) %전체자리.소수점아래자리f 이런 식으로 자릿수를 지정할 수 있다. ex) %14.10f :전체 14자리 소수점 10자리. 오른쪽 맞춤. 만약 %014.10f이었으면 빈자리는 0으로 채워진다.
- %e, %E : 실수형 값을 지수(exponent) 표현식의 형식으로 출력
- %g: 실수형 값을 간략하게 표현할 때
- %c : 문자(character)로 출력
(+) c언어에서는 char타입을 %d로 출력이 가능하지만 Java에서는 직접 int 타입으로 형변환을 해야만 %d로 출력할 수 있다.
- %s: 문자열(string)로 출력
(+) .을 붙여서 문자열의 일부만 출력가능 ex) %.8s : 왼족에서 8글자만 출력
println()과 달리 printf()는 출력 후 줄바꿈이 되지 않으므로 지시자 %n을 통해 직접 줄바꿈해주어야 한다.
(%n 대신 \n을 사용해도 되지만, OS마다 줄바꿈 문자가 다를 수 있기에 %n을 사용하는 것이 더 안전하다.)
'Programming Language > Java' 카테고리의 다른 글
[Java] 클래스와 객체 (0) | 2023.12.30 |
---|---|
[Java] 특수 문자 다루기 (0) | 2023.12.30 |
[Java] 변수 (0) | 2023.12.30 |
[Java] public static void main(String[] args) 분석 (0) | 2023.12.30 |
[Java] JDK와 JRE (0) | 2023.12.30 |