println vs printf vs String.format

드코미·2025년 7월 22일
post-thumbnail

1. println()

값을 그대로 출력한다.

int num = 42;
String name = "Alice";

System.out.println(num);   // 42
System.out.println(name);  // Alice

특징

  • 가장 많이 사용
  • 자동 줄바꿈
  • 포맷팅 불가
System.out.println("이름: " + name + ", 나이: " + num);

2. printf()

형식(format)을 지정하여 바로 출력한다.

int num = 42;
String name = "Alice";

System.out.printf("숫자: %d, 이름: %s\n", num, name);

출력

숫자: 42, 이름: Alice

특징

  • 포맷팅 가능
  • 바로 출력
  • 자동 줄바꿈 X
System.out.printf("Hello");
System.out.printf("World");

출력

HelloWorld

줄바꿈하려면

System.out.printf("Hello\n");
System.out.printf("World");

출력

Hello
World

3. String.format()

포맷팅된 문자열을 만들어서 반환한다.

int num = 42;
String name = "Alice";

String result =
        String.format("숫자: %d, 이름: %s", num, name);

System.out.println(result);

출력

숫자: 42, 이름: Alice

특징

  • 출력하지 않음
  • 문자열만 생성
  • 변수에 저장 가능
String msg = String.format("%d점", 100);

자주 사용하는 포맷 문자

포맷의미
%d정수(int)
%f실수(double)
%s문자열(String)
%c문자(char)
%bboolean
System.out.printf("%d\n", 100);
System.out.printf("%f\n", 3.14);
System.out.printf("%s\n", "Hello");
System.out.printf("%c\n", 'A');
System.out.printf("%b\n", true);

소수점 자리수 지정

코테에서 가장 많이 쓰는 포맷

소수점 2자리

double pi = 3.141592;

System.out.printf("%.2f\n", pi);

출력

3.14

소수점 3자리

System.out.printf("%.3f\n", pi);

출력

3.142

String.format으로도 가능

String result = String.format("%.2f", pi);

System.out.println(result);

출력

3.14

코테에서 자주 보는 예시

double avg = (double) sum / n;

// 소수 둘째 자리까지 출력
System.out.printf("%.2f\n", avg);
String answer =
        String.format("%.2f", avg);

암기 템플릿

// 그대로 출력
System.out.println(value);

// 포맷팅 + 바로 출력
System.out.printf("%d %s\n", num, str);

// 포맷팅 + 문자열 생성
String result = String.format("%d %s", num, str);

// 정수
%d

// 실수
%f

// 문자열
%s

// 문자
%c

// 줄바꿈
\n

// 소수점 둘째 자리
%.2f

// 소수점 셋째 자리
%.3f

코테 기준 중요도

⭐⭐⭐ 필수

  • println()
  • printf()
  • %d
  • %s
  • \n
  • %.2f

⭐⭐ 알아두기

  • String.format()
  • %c
  • %b

⭐ 거의 안 씀

  • %03d
  • %-3d
  • %6.2f
  • %10s

이 정도면 코테에서 필요한 출력 포맷은 거의 다 커버된다.

profile
할 수 있다!!!

0개의 댓글