어제 오늘 내일

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

IT/Java

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

hi.anna 2025. 9. 28. 01:03

StringBuffer는 문자열을 가변적으로 다룰 수 있어 성능상 유리하지만,
실제로 출력하거나 다른 API에 전달할 때는 불변 문자열(String) 타입이 필요한 경우가 많습니다.
이때 사용하는 메서드가 바로 toString()입니다.

 

1. toString() 기본 사용법

public synchronized String toString()
  • 현재 StringBuffer에 담긴 내용을 새로운 String 객체로 반환
  • 원본 StringBuffer는 그대로 유지
StringBuffer sb = new StringBuffer("Hello");
sb.append(" World");

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

👉 최종 문자열이 필요할 때 꼭 toString()을 호출해야 합니다.

 

2. 출력 시 자동 호출

System.out.println() 같은 메서드에서는 내부적으로 toString()이 자동 호출됩니다.

StringBuffer sb = new StringBuffer("Java");
System.out.println(sb);  // 내부적으로 sb.toString() 호출

👉 콘솔에서는 차이가 없어 보이지만, 다른 API에서는 반드시 명시적으로 toString()을 써야 합니다.

 

3. 실전 활용 예제

동적 SQL 쿼리 생성

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

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

👉 DB 쿼리를 동적으로 만들고, 최종적으로 String으로 변환해 실행.

JSON 문자열 생성

StringBuffer json = new StringBuffer();
json.append("{")
    .append("\"name\":\"Alice\",")
    .append("\"age\":25")
    .append("}");

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

👉 문자열을 효율적으로 조립한 뒤, String으로 변환해 API에 전달.

 

4. 정리

  • toString()StringBuffer의 내용을 최종 String으로 변환
  • 콘솔 출력에서는 자동 호출되지만, API 호출 시에는 명시적으로 사용해야 함
  • 문자열 조합 후 확정된 값을 안전하게 사용하려면 반드시 필요

 

🔑 한 줄 정리
👉 StringBuffer로 문자열을 만들었다면, 최종 결과를 얻기 위해서는 toString()을 호출하자!

 

 

반응형
Comments