[JAVA] String.format에 대해 알아보기

2025. 9. 23. 20:28·JAVA

이번 커머스 과제를 수행하면서 알게된 String.format의 개념에 대해서 정리하고 넘어가고자 한다.

 

String.format 이란 ? 

→ String.format()은 문자열을 원하는 형식(format)에 맞춰서 생성할 때 사용하는 메서드

 

1. 기본 문법

String result = String.format("포맷 문자열", 값1, 값2, ...);
  • "포맷 문자열" : % 기호와 함께 자리 표시자를 넣음
  • 값들은 순서대로 자리 표시자에 매핑됨
  • 최종적으로 새로운 문자열을 반환

2. 주요 포맷 지정자

포맷 지정자 의미 예시
%d 정수 String.format("%d", 10) → "10"
%f 실수 (기본 소수점 6자리) String.format("%f", 3.14) → "3.140000"
%.nf 소수점 n자리까지 String.format("%.2f", 3.14159) → "3.14"
%s 문자열 String.format("%s", "Hello") → "Hello"
%c 문자 String.format("%c", 'A') → "A"
%b boolean String.format("%b", true) → "true"
%o 8진수 String.format("%o", 10) → "12"
%x 16진수 (소문자) String.format("%x", 255) → "ff"
%X 16진수 (대문자) String.format("%X", 255) → "FF"

 

3. 포맷 옵션(정렬, 폭, 패딩)

옵션 의미 예시
%5d 5자리 폭 확보 (오른쪽 정렬) String.format("%5d", 42) → "   42"
%-5d 5자리 폭 확보 (왼쪽 정렬) String.format("%-5d", 42) → "42   "
%05d 빈칸을 0으로 채움 String.format("%05d", 42) → "00042"
%10s 문자열 폭 맞춤 String.format("%10s", "Hi") → "        Hi"

 

4.  예제 코드

실제로 String.format을 사용한 예제를 통해 어떤 결과를 나타내는지 알아보자

public class Main {
    public static void main(String[] args) {
        String name = "하마";
        int age = 28;
        double score = 95.5678;

        // 기본 문자열 조합
        String result1 = String.format("이름: %s, 나이: %d", name, age);
        System.out.println(result1);
        // → 이름: 하마, 나이: 28

        // 소수점 제한
        String result2 = String.format("점수: %.2f", score);
        System.out.println(result2);
        // → 점수: 95.57

        // 정렬 및 패딩
        String result3 = String.format("번호: %05d", 7);
        System.out.println(result3);
        // → 번호: 00007
    }
}

 

4.  printf와의 차이점

  • System.out.printf() : 출력만 하고 반환값 없음
  • String.format() : 문자열을 생성해서 반환 → 나중에 다른 문자열과 합치거나 변수에 저장할 수 있음

5. 플래그(Flags)

  • C언어의 포맷팅 문법 중 플래그(flag)라고 사용되던 개념을 확장하여 적용함
플래그 의미 예시
- 왼쪽 정렬 String.format("%-5d", 42) → 42   
0 빈칸을 0으로 채움 String.format("%05d", 42) → 00042
, 천 단위 구분 String.format("%,d", 1234567) → 1,234,567
+ 항상 부호 표시 String.format("%+d", 42) → +42
( 음수를 괄호로 표시 String.format("%(d", -42) → (42)
# 특수 기호 추가 (진수 표현 등) String.format("%#x", 255) → 0xff

 

 

이를 통해 포맷 지정자, 포맷 옵션, 플래그를 적절히 잘 활용하면 사람이 읽기 좋은 가독성 높은 출력 화면을 이끌어 낼 수 있음!

 

쉽게 예시를 통해 비교해보면서 마무리해보자!

 

  • As is
System.out.println("1 Galaxy S25 1200000 최신 안드로이드 스마트폰");
System.out.println("2 iPhone16 1350000 Apple의 최신 스마트폰");

→ 숫자와 글자가 붙어 있어 가독성이 떨어짐

 

  • To be
System.out.println(String.format("%-2d %-15s | %,10d원 | %s",
    1, "Galaxy S25", 1200000, "최신 안드로이드 스마트폰"));
System.out.println(String.format("%-2d %-15s | %,10d원 | %s",
    2, "iPhone 16", 1350000, "Apple의 최신 스마트폰"));

 

  • 결과창
1  Galaxy S25      |  1,200,000원 | 최신 안드로이드 스마트폰
2  iPhone 16       |  1,350,000원 | Apple의 최신 스마트폰

→ 깔끔하게 정렬되고, 금액에는 자릿수 표현, 설명은 일정 간격 뒤에 나와 구분자가 보다 깔끔한 화면을 나타나게 함

 

 

 

 

'JAVA' 카테고리의 다른 글

[JAVA] 알고리즘 기본 정리  (0) 2025.09.29
[JAVA] 배열 개념 확장 정리  (1) 2025.09.25
[JAVA] JAVA의 For문에 대해  (0) 2025.09.23
[JAVA] 객체 지향 프로그래밍 개념 정리 (OOP)  (0) 2025.09.19
[JAVA] JSP vs Thymleaf 개념 더 알아보기  (0) 2025.09.19
'JAVA' 카테고리의 다른 글
  • [JAVA] 알고리즘 기본 정리
  • [JAVA] 배열 개념 확장 정리
  • [JAVA] JAVA의 For문에 대해
  • [JAVA] 객체 지향 프로그래밍 개념 정리 (OOP)
stark77
stark77
하마의 IT 자기개발 이모저모, 백엔드 개발자로 거듭나기
  • stark77
    하마의 개발자 성장일기
    stark77
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 컴퓨터구조와 운영체제
        • 컴퓨터구조
        • 운영체제
      • SQL 기초
      • Spring
        • 백엔드 기초
        • Spring 실습
      • JAVA
        • Java 실습
      • HTML&CSS
        • HTML&CSS 실습
      • Git&GitHub
        • Git&GitHub 실습
      • 내배캠 끄적끄적
        • Today I Learned
      • 유용한 툴 및 사이트 정리
      • 취미
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    RestTemplate
    백엔드 기초
    java
    String.format
    객체지향
    프로세스와 쓰레드
    실시간 데이터 처리
    jsp
    for문
    웹소켓
    Spring
    algorithm
    MVC
    Java 문법기초
    BEAN
    HTML&CSS
    Til
    네트워크 기초
    thymleaf
    객체지향프로그래밍
    git
    JPA
    Spriingboot
    Stomp
    다형성
    Github
    경합조건과 교착상태
    WebSocket
    SpringSecurity
    백엔드 기초다지기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
stark77
[JAVA] String.format에 대해 알아보기
상단으로

티스토리툴바