어제 오늘 내일

[Java StringBuilder] setLength() – 문자열 길이 강제로 조정하기 본문

IT/Java

[Java StringBuilder] setLength() – 문자열 길이 강제로 조정하기

hi.anna 2025. 9. 22. 12:56

StringBuilder는 문자열 길이를 마음대로 조정할 수 있는 기능을 제공합니다.
그게 바로 setLength() 메서드인데, 문자열을 잘라내거나 늘릴 때 유용하게 쓸 수 있습니다.

 

1. setLength() 기본 사용법

public void setLength(int newLength)
  • 현재 문자열의 길이를 newLength로 강제 설정
  • newLength < 현재 길이 → 문자열이 잘림
  • newLength > 현재 길이 → 빈 공간(\u0000)이 채워짐
StringBuilder sb = new StringBuilder("Hello World");
sb.setLength(5);
System.out.println(sb.toString());
// 출력: Hello

👉 문자열을 자르는 효과를 얻을 수 있습니다.

 

2. 문자열 늘리기

StringBuilder sb = new StringBuilder("Java");
sb.setLength(10);
System.out.println("길이: " + sb.length());
System.out.println("내용: [" + sb.toString() + "]");

출력:

길이: 10
내용: [Java������]

👉 "Java" 뒤에 \u0000 (널 문자)이 채워지지만, 화면에 출력되면 공백처럼 보이기도 합니다.

 

3. 실전 활용 예제

문자열 잘라내기

StringBuilder sb = new StringBuilder("2025-08-23 14:30:59");
sb.setLength(10);
System.out.println(sb.toString());
// 출력: 2025-08-23

👉 로그 타임스탬프에서 날짜 부분만 남기고 잘라낼 수 있습니다.

버퍼 초기화 (내용 삭제)

StringBuilder sb = new StringBuilder("Temporary Data");
sb.setLength(0);
System.out.println("길이: " + sb.length());
// 출력: 길이: 0

👉 delete(0, length()) 대신 setLength(0)으로 한 줄에 문자열을 비울 수 있습니다.

 

4. 주의할 점

  • newLength가 음수라면 StringIndexOutOfBoundsException 발생
  • 문자열을 늘릴 경우 \u0000 문자가 들어가기 때문에 그대로 출력하면 예상과 다르게 보일 수 있음
StringBuilder sb = new StringBuilder("ABC");
// sb.setLength(-1); // 예외 발생

 

5. 정리

  • setLength(newLength) → 문자열 길이를 강제로 변경
  • 줄이면 잘리고, 늘리면 \u0000 채워짐
  • 문자열 잘라내기, 초기화 등 다양한 활용 가능
  • 음수 길이는 예외 발생

 

🔑 한 줄 정리
👉 setLength()StringBuilder의 문자열을 잘라내거나 비울 때 가장 간단한 방법이다!

 

 

반응형
Comments