자바 출력 방식

정주영·2024년 12월 10일

자바

목록 보기
2/10
post-thumbnail

1. print, printf, pringln 차이

print : 괄호안 내용을 단순히 출력. 개행문자(=줄바꿈문자=\n) 포함안됨.
printf : C에서의 printf와 동일. %d, %s 등을 쓰기위해 사용. 개행문자 포함X
println : 괄호안 내용을 출력한 후 마지막에 개행문자가 포함되어 있어 출력후 한 줄 띄워짐.


2. println()의 단점

println()은 가장 기본적인 출력 방법으로, 데이터 뒤에 줄바꿈을 자동으로 추가합니다. 하지만 다음과 같은 한계가 있습니다:

출력 형식 제어 불가

숫자나 문자열의 출력 형식을 세부적으로 조정할 수 없습니다.
예: 정렬, 소수점 자리수, 특정 진법 출력 등

데이터 결합 불편

여러 값을 연결하거나 특정 형식을 유지하려면 문자열 결합이 필요합니다.
예: "값은 " + number + "입니다." 와 같은 코드 작성

int a = 10, b = 20;
System.out.println("a: " + a + ", b: " + b); 

3. printf()로 출력 형식 지정

printf()는 출력 형식을 자유롭게 지정할 수 있는 강력한 메서드입니다. 특정 형식을 지정하는 데 필요한 지시자(format specifier) 를 제공하며, 출력 내용을 정리하거나 보기 좋게 만듭니다.

System.out.printf("형식 문자열", 값1, 값2, ...);

int a = 10, b = 20;
System.out.printf("a: %d, b: %d\n", a, b); // a: 10, b: 20
  • 형식 문자열: 출력 형식을 지정
    값: 출력할 데이터

4. printf의 지시자

(1) 정수를 다양한 진법으로 출력

%d: 10진수 정수
%o: 8진수 정수
%x 또는 %X: 16진수 정수 (소문자/대문자)

int number = 255;
System.out.printf("10진수: %d\n", number); // 10진수: 255
System.out.printf("8진수: %o\n", number);  // 8진수: 377
System.out.printf("16진수: %x\n", number); // 16진수: ff

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

%#o: 8진수에 접두사 0 추가
%#x 또는 %#X: 16진수에 접두사 0x 또는 0X 추가

int number = 255;
System.out.printf("8진수(접두사): %#o\n", number);  // 8진수(접두사): 0377
System.out.printf("16진수(접두사): %#x\n", number); // 16진수(접두사): 0xff

(3) 실수 출력을 위한 지시자 %f

%f: 기본적으로 소수점 이하 6자리 출력

double pi = 3.14159265359;
System.out.printf("기본 출력: %f\n", pi); // 기본 출력: 3.141593

(4) 소수점 이하 자리수 설정

%.nf: 소수점 아래 n 자리까지 출력

double pi = 3.14159265359;
System.out.printf("소수점 2자리: %.2f\n", pi); // 소수점 2자리: 3.14
System.out.printf("소수점 4자리: %.4f\n", pi); // 소수점 4자리: 3.1416

(5) 문자열 부분 출력

%s: 문자열 출력
%.ns: 문자열 중 처음 n 개의 문자만 출력

String text = "Hello, World!";
System.out.printf("전체 출력: %s\n", text);      // 전체 출력: Hello, World!
System.out.printf("부분 출력: %.5s\n", text);   // 부분 출력: Hello

(6) 자주 사용하는 지시자 모음


5. 추가로 알아두면 좋은 옵션

너비 지정: %n.m 형식으로 전체 출력 너비와 소수점 자릿수를 설정 가능
정렬: 기본은 오른쪽 정렬, %- 사용 시 왼쪽 정렬

System.out.printf("오른쪽 정렬: |%10d|\n", 123); // 오른쪽 정렬: |       123|
System.out.printf("왼쪽 정렬: |%-10d|\n", 123); // 왼쪽 정렬: |123       |

6. printf의 장점 요약

다양한 데이터 타입의 출력 형식을 제어 가능
깔끔하고 가독성 높은 출력 구현
숫자, 문자열, 실수 등을 보기 좋게 포맷 가능

profile
효율적인 시스템 설계를 고민하며, 확장성과 안정성을 갖춘 백엔드 개발자가 되길 희망합니다.

0개의 댓글