[Java] print(), println(), printf()
앞서 변수에 저장된 값을
콘솔에 출력하여 확인 할 때
print()와 println()을 사용한다는 것을 배웠다.
(변수의 사용, System.out.println(); 단축키, 더하기부호(+))
<print()>
System.out.print(1);
System.out.print(2);
System.out.print(3);
[실행결과]
123
<println()>
System.out.println(1);
System.out.println(2);
System.out.println(3);
[실행결과]
1
2
3
println()은 자동완성 기능이 있어 사용이 편하지만
변수의 값을 그대로 출력하기 때문에
값을 변환하지 않고서는 다른 형식으로 출력할 수 없다.
예를들면, 소수점 둘째자리까지만을 출력한다던가,
정수를 16진수 또는 8진수로 출력한다거나.
이럴때는 printf()를 사용하면 된다.
<printf()>
printf()는 '지시자(specifier)'를 통해
변수의 값을 여러가지 형식으로 변환하여
출력하는 기능을 가지고 있다.
'지시자'는 값을 어떻게 출력할 것인지
지정해주는 역할을 한다.
예를 들면 int 타입 변수 age에 저장된 값을
10진수로 출력할 때는 지시자 %d를 사용하며,
16진수로 출력할 때는 지시자 %x를 사용한다.
int age = 36;
System.out.printf("%d", age); // 36 --- (1)
System.out.println();
System.out.printf("%x", age); // 24 --- (2)
[실행결과]
36
24
콤마(,) 뒤에 있는 변수(에 저장된 값) 또는 리터럴을
콤마 앞의 큰따옴표("")안에 형식으로 출력한다.
printf()는 print()처럼 줄바꿈을 하지 않기 때문에
위 예제처럼 문장사이에 println()을 넣지 않으면
3624로 출력한다.
아래 예제처럼 줄바꿈을 뜻하는 %n 지시자를 추가하는 것이 좋다.
System.out.printf("%d%n", age);
System.out.printf("%x%n", age);
[실행결과]
36
24
<지시자(specifier)의 종류>
자주 사용되는 printf()의 지시자는 다음과 같다.
<2진수로 출력해야 할 때>
10진수를 2진수로 출력해주는 지시자는 없기 때문에
정수를 2진 문자열로 변환해주는
'Integer.toBinaryString(int i)'를 사용해야 한다.
결과값이 정수가 아닌 문자열이므로
String 타입의 변수에 저장해야 하며,
printf() 출력시 지시자는 %s로 해야 한다.
String bn = Integer.toBinaryString(10000);
System.out.printf("%s", bn);
[실행결과]
10011100010000