본문 바로가기
JAVA/Java Study

[Java의 정석 - 기초편] 2-11. 형식화된 출력 : printf()

by ♡˖GYURI˖♡ 2024. 1. 9.

2-11. 형식화된 출력 : printf()

println()의 단점 : 출력 형식 지정 불가

  1. 실수의 자리수 조절 불가
  2. 10진수로만 출력됨

 

printf()로 출력 형식 지정 가능

System.out.printf("%.2f", 10.0/3);	// 3.33
System.out.printf("%d", 0x1A);		// 26
System.out.printf("X", 0x1A);		// 1A

 

 

printf()의 지시자

지시자 설명
%b 불리언(boolean) 형식으로 출력
%d 10진(decimal) 정수의 형식으로 출력
%o 8진(octal) 정수의 형식으로 출력
%x, %X 16진(hexa-decimal) 정수의 형식으로 출력
%f 부동 소수점(floating-point)의 형식으로 출력
%e, %E 지수(exponent) 표현식의 형식으로 출력
%c 문자(character)로 출력
%s 문자열(string)로 출력
System.out.printf("age: %d year: %d\n", 14, 2017);	
// age: 14 year: 2017 출력 후 줄바꿈

 

 

정수를 10진수, 8진수 16진수로 출력

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진수

 

 

8진수와 16진수에 접두사 붙이기

System.out.printf("%#o", 15);	// 017
System.out.printf("%#x", 15);	// 0xf
System.out.printf("%#X", 15);	// 0XF

 

 

실수 출력을 위한 지시자 %f - 지수형식(%e), 간략한 형식(%g)

float f = 123.4567890f;
System.out.printf("%f", f);		// 123.456789 : 소수점 아래 6자리
System.out.printf("%e", f);		// 1.234568e+02	: 지수 형식 (소수점 아래 6자리인듯?)
System.out.printf("%g", 123.456789);	// 123.457 : 간략한 형식
System.out.printf("%g", 0.00000001);	// 1.00000e-8 : 간략한 형식

 

 

System.out.printf("[%5d]\n", 10);	// [   10]
System.out.printf("[%-5d]\n", 10);	// [10   ]
System.out.printf("[%05d]\n", 10);	// [00010]

 

 

%전체자리.소수점아래자리f

System.out.printf("d = %14.10f\n", d);	// 전체 14자리 중 소수점 아래 10자리

System.out.printf("[%s]\n", url);	// [www.codechobo.com]
System.out.printf("[%20s]\n", url);	// [   www.codechobo.com]
System.out.printf("[%-20s]\n", url);	// [www.codechobo.com   ]
System.out.printf("[%.8s]\n", url);	// [www.code]