흔히 사용하는 println()의 단점 : 출력형식 지정 불가 (변수값 그대로 출력)
1. 실수의 자리수 조절 불가- 소수점 n자리만 출력하려면?System.out.println(10.0/3); // 3.333333...
- 10진수로만 출력됨 - 3진수, 16진수로 출력하려면?
System.out.println(0X1A); // 26 (10진수)printf
printf를 이용해 출력 형식 지정이 가능함
| 지시자 | 설명 |
|---|---|
| %b | 블리언(boolean)형식으로 출력 |
| %d | 10진 정수의 형식으로 출력 |
| %o | 8진 정수 형식으로 출력 |
| %x, %X | 16진 정수의 형식으로 출력 |
| %f | 부동 소수점 형식으로 출력 |
| %e,%E | 지수 표현식의 형식으로 출력 |
| %c | 문자로 출력 |
| %s | 문자열로 출력 |
(이외의 형식들은 JavaAPI -> Formmatter 확인)
System.out.printf("age :%d\n", 14, 2017);
// age: 14
// year : 2017
System.out.printf("%d",15); //15 10진수
System.out.printf("%o",15); //17 8진수
System.out.printf("%x",15); //f 16진수
System.out.printf("%s",Integer.toBinaryString(15)); //1111 2진수
이진문자열 메소드
// 10진수 -> 2진수
Integer.toBinaryString();
System.out.printf("%#o",15); //017
System.out.printf("%#o",15); //0x17
System.out.printf("%#X",15); //0XF
float f = 123.4567890f;
System.out.printf("%f",f); // 123.456789 소수점 아래 6자리
System.out.printf("%e",f); // 1.234568e+02 지수형식
System.out.printf("[%5d]%n", 10); // 자릿수 지정 [ 10] : 5자리를 원했지만 두자리수이므로 나머지는 공백으로 채움
System.out.printf("[%-5d]%n", 10); // [10 ] : -를 붙이면 왼쪽 정렬
System.out.printf("[%05d]%n", 10); // [00010]
System.out.printf("d=%14.10f%n",d); // 전체 14자리 중 소수점 아래 10자리
System.out.printf("[%s]%n",url); // 문자열 정렬은 %d와 규칙은 같음
System.out.printf("[%.8s]%n",url); // 8자리만 출력
👀참고
자바의정석-printf