어제 오늘 내일

[Java StringBuilder] toString() – 최종 문자열 변환하기 본문

IT/Java

[Java StringBuilder] toString() – 최종 문자열 변환하기

hi.anna 2025. 9. 24. 01:08

StringBuilder는 문자열을 효율적으로 수정할 수 있는 클래스이지만,
실제로 프로그램에서 출력하거나 다른 API에 전달하려면 String으로 변환해야 할 때가 많습니다.
이때 사용하는 메서드가 바로 toString()입니다.

 

1. toString() 기본 사용법

public String toString()
  • StringBuilder 객체에 저장된 내용을 새로운 String 객체로 반환
  • 이후에는 더 이상 가변적이지 않고 불변(immutable)한 문자열로 사용 가능
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");

String result = sb.toString();
System.out.println(result);
// 출력: Hello World

👉 StringBuilder로 문자열을 조합한 뒤, 최종적으로 String으로 변환합니다.

 

2. toString()을 꼭 써야 하는 이유

StringBuilder sb = new StringBuilder("Java");
System.out.println(sb);  

출력:

Java

👉 콘솔 출력에서는 toString()이 자동 호출되므로 동일하게 보입니다.

하지만, 실제로 메서드 매개변수나 API 호출에서는 String 타입을 요구하는 경우가 많기 때문에 반드시 toString()을 명시적으로 호출해야 합니다.

예:

StringBuilder sb = new StringBuilder("Hello");
// String 타입을 요구하는 메서드
printMessage(sb.toString());

void printMessage(String msg) {
    System.out.println("메시지: " + msg);
}

👉 sb 자체는 StringBuilder라서 그대로 넘길 수 없고, toString()을 통해 변환해야 합니다.

 

3. 실전 활용 예제

SQL 쿼리 문자열 만들기

StringBuilder query = new StringBuilder();
query.append("SELECT * FROM users ")
     .append("WHERE age > ").append(20)
     .append(" ORDER BY name");

String sql = query.toString();
System.out.println(sql);

👉 동적으로 문자열을 조립한 뒤, 최종 결과를 String으로 변환해 DB에 전달.

JSON 형식 만들기

StringBuilder json = new StringBuilder();
json.append("{")
    .append("\"name\":\"John\",")
    .append("\"age\":30")
    .append("}");

String result = json.toString();
System.out.println(result);

👉 StringBuilder로 가볍게 JSON 조합 후, String으로 변환.

 

4. 정리

  • toString()StringBuilder의 최종 결과를 String으로 반환
  • 콘솔 출력에서는 자동 호출되지만, API 사용 시에는 반드시 명시 필요
  • 동적 문자열 조립 후, 최종 결과를 안전하게 사용하는 데 필수

 

🔑 한 줄 정리
👉 StringBuilder에서 만든 문자열을 실제로 사용하려면 반드시 toString()으로 변환해야 한다!

 

 

반응형
Comments