[Java 문법] printf

mong k·2026년 3월 31일

1. Printf란?

👉 문자열을 형식에 맞게 출력하는 메서드

👉 % 를 사용해서 출력 형식 지정

System.out.printf("문자열",);

cf)

  • print() : 줄바꿈 없이 출력하는 메서드
  • println() : 출력 후 자동으로 줄바꿈하는 메서드

2. 기본 형식 문자

형식의미예시
%d정수10
%f실수3.14
%s문자열"문자"
%c문자'A'
%bbooleantrue
System.out.printf("%d %f %s %c %b",
        10, 3.14, "문자", 'A', true);

3. 예시

3.1 정수 출력

System.out.printf("%d", 100);

3.2 실수 출력

System.out.printf("%.2f", 3.14159);
  • 소수점 2자리까지 출력

3.3 문자열 출력

System.out.printf("%s", "Hello");

3.4 정렬

3.4.1 오른쪽 정렬 (기본)

  • %10d

3.4.2 왼쪽 정렬

  • %-10d

3.4.3 왼쪽 정렬 + 15칸 확보

  • %-15s

-"Galaxy S24 "

3.5 자릿수&소수점

3.5.1 천 단위 콤마 + 10칸 확보

  • %,10d

3.5.2 소수점 2자리 + 10칸 확보

  • %10.2f

4. printf 말고 다른 방법

4.1 String.format() ⭐ 거의 동일

  • 문자열로 반환
String result = String.format("%-15s | %,10d원", "Galaxy S24", 1200000);

System.out.println(result);
  • 특징
    ㄴ printf랑 문법 동일
    ㄴ 콘솔 출력 X
    ㄴ 문자열 반환 O

4.2 MessageFormat

  • {} 기반 포맷

    import java.text.MessageFormat;
    
    String result = MessageFormat.format(
        "{0} | {1}원", "Galaxy S24", 1200000
    );
    
    System.out.println(result);
  • 특징
    ㄴ {0}, {1} 사용
    ㄴ 국제화(i18n)에서 많이 씀
    ㄴ printf보다 덜 직관적

4.3 문자열 더하기 (+)

  • 간단할 때만 사용
String result = "Galaxy S24" + " | " + 1200000 + "원";

4.4 StringBuilder

  • 문자열 많이 붙일 때 사용
StringBuilder sb = new StringBuilder();
sb.append("Galaxy S24");
sb.append(" | ");
sb.append(1200000);
sb.append("원");

String result = sb.toString();
  • 특징
    ㄴ 반복문에서 많이 씀
    ㄴ 포맷 기능 없음

4.5 DecimalFormat (숫자 포맷 전용)

  • 숫자 꾸밀 때
import java.text.DecimalFormat;

DecimalFormat df = new DecimalFormat("#,###");

String price = df.format(1200000);

System.out.println(price); // 1,200,000
  • 특징
    ㄴ 콤마, 소수점 제어 가능
    ㄴ printf 없이 숫자 포맷 가능

4.6 Java 최신 방식!

👉 Java 15+ formatted()

👉 String.format 축약형

String result = "%-15s | %,10d원".formatted("Galaxy S24", 1200000);

0개의 댓글