println()은 사용하기엔 편하지만 변수의 값을 그대로 출력하므로, 값을 변환하지 않고는 다른 형식으로 출력할 수 없다.
printf()는 '지시자'를 통해 변수의 값을 여러 가지 형식으로 변환하여 출력하는 기능을 가지고 있다.(지시자는 값을 어떻게 출력할 것인지를 지정해주는 역할을 한다.)
지시자 | 설명 |
---|---|
%b | boolean 형식으로 출력 |
%d | 10진 정수의 형식으로 출력 |
%o | 8진 정수의 형식으로 출력 |
%x, %X | 16진 정수의 형식으로 출력 |
%f | 부동 소주점의 형식으로 출력 |
%e, %E | 지수 표현식으로 출력 |
%c | 문자로 출력 |
%s | 문자열로 출력 |
정수형의 값을 출력하는 예제
System.out.printf("finger = [%5d]%n", finger) //finger = [ 10]
System.out.printf("finger = [%-5d]%n", finger) //finger = [10 ]
System.out.printf("finger = [%05d]%n", finger) //finger = [00010]
실수형의 값을 출력하는 예제
System.out.printf("%d = %14.10f%n",d)// 전체 14자리 중 소수점 아래 10자리
문자열을 출력하는 예제
System.out.printf("%s%n", str) //문자열의 길이 만큼 출력 공간 확보
System.out.printf("[%20s]%n", str) //최소 20글자 출력공간 확보(우측정렬)
System.out.printf("[%-20s]%n", str) //최소 20글자 출력공간 확보(좌측정렬)
System.out.printf("[%.8s]%n", str) //왼쪽에서 8글자만 출력