Java

09. printf를 이용한 출력 - 패스트캠퍼스 백엔드 부트캠프 3기

gkss2tpt 2024. 12. 17. 18:41

1. 형식화된 출력

  • println()의 단점 - 출력형식 지정불가
System.out.println(10.0/3);		// 3.33333333..

 

  • 10진수로만 출력된다.
System.out.println(0x1A);		 // 26 <- 10진수
  • printf()로 출력형식 지정가능
System.out.printf("%.2f", 10.0/3);		// 3.33
System.out.printf("%d", 0x1A); 			// 26
System.out.printf("%x", 0x1A);			// 1A

 

2. 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\n"
System.out.printf("age:%d", age);				// 출력 후 줄바꿈을 하지 않는다.
System.out.printf("age:%d%n", age);				// 출력 후 줄바꿈을 한다.

 

  • 정수를 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 	10진수
System.out.printf("%#x" , 15);	// 0xf 	8진수
System.out.printf("%#X" , 15);	// 0xF 	16진수
  • 실수 출력을 위한 지시자 %f - 지수형식(%e), 간략한 형식(%g)
float f = 123.4567890f;
System.out.printf("%f", f);		// 123.456787 소수점아래 6자리 float의 정밀도가 7이라서 87의미x
System.out.printf("%e", f);		// 1.234568e+02	지수형식 e+02는 10(2승)
System.out.printf("%g", 123.456789);	// 123.457	간략한 방식 소수점포함 7자리 
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]

double d = 1.23456789;
System.out.printf("d=%14.10f%n", d);		// 전체 14자리 중 소수점 아래 10자리
						//   1.2345678900
String url = "www.codechobo.com";
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]