어제 오늘 내일

[Java StringBuilder] substring() – 부분 문자열 추출하기 본문

IT/Java

[Java StringBuilder] substring() – 부분 문자열 추출하기

hi.anna 2025. 9. 23. 12:02

StringBuilder는 문자열을 수정하는 클래스지만, 특정 구간을 잘라서 String으로 반환할 수도 있습니다.
이때 사용하는 메서드가 바로 substring()입니다.

 

1. substring() 기본 사용법

public String substring(int start)
public String substring(int start, int end)
  • start부터 끝까지 잘라내거나,
  • start부터 end 직전까지 잘라냄
  • 반환 타입은 String (주의: StringBuilder가 아님)
StringBuilder sb = new StringBuilder("Hello Java");

String part1 = sb.substring(6);
String part2 = sb.substring(0, 5);

System.out.println(part1); // Java
System.out.println(part2); // Hello

👉 StringBuilder에서 잘라낸 부분은 String으로 리턴됩니다.

 

2. 문자열 일부 추출 예제

파일 확장자 추출

StringBuilder file = new StringBuilder("report.pdf");
int dotIndex = file.lastIndexOf(".");
String ext = file.substring(dotIndex + 1);
System.out.println(ext);
// pdf

👉 StringBuilder에서도 확장자를 뽑아낼 수 있습니다.

URL에서 도메인 추출

StringBuilder url = new StringBuilder("https://www.example.com/index.html");
String domain = url.substring(8, url.indexOf("/", 8));
System.out.println(domain);
// www.example.com

👉 부분 문자열 처리에는 substring()이 가장 직관적입니다.

 

3. 주의할 점

  • substring()은 원본 StringBuilder를 수정하지 않음 → 안전하게 사용 가능
  • 반환 타입은 String이라 StringBuilder 메서드 체이닝에는 쓸 수 없음
  • 인덱스 범위를 벗어나면 StringIndexOutOfBoundsException 발생
StringBuilder sb = new StringBuilder("Java");
// sb.substring(10); // 예외 발생

 

4. 정리

  • substring(start)start부터 끝까지
  • substring(start, end)start부터 end 직전까지
  • 결과는 String으로 반환 (원본 변경 없음)
  • 부분 문자열 추출, 파일/URL 처리에 자주 활용

 

🔑 한 줄 정리
👉 StringBuilder에서 특정 구간만 잘라내려면 substring()을 사용하면 된다!

 

 

반응형
Comments