어제 오늘 내일

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

IT/Java

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

hi.anna 2025. 9. 27. 12:01

StringBuffer는 가변 문자열을 다루지만, 특정 구간을 잘라낼 때는 불변 문자열(String)을 반환하는 substring() 메서드를 제공합니다.
즉, StringBuffer에서 원하는 부분만 잘라서 새로운 String을 얻을 수 있습니다.

 

1. substring() 기본 사용법

public synchronized String substring(int start)
public synchronized String substring(int start, int end)
  • start부터 끝까지 또는
  • start부터 end 직전까지 문자열을 잘라 String으로 반환
StringBuffer sb = new StringBuffer("Hello Java");

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

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

👉 결과는 String 객체이며, 원본 StringBuffer는 변하지 않습니다.

 

2. 실전 활용 예제

파일 확장자 추출

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

👉 substring()을 이용해 확장자를 뽑아낼 수 있습니다.

경로에서 파일명 추출

StringBuffer path = new StringBuffer("C:/Users/John/report.docx");
int slashIndex = path.lastIndexOf("/");
String filename = path.substring(slashIndex + 1);
System.out.println(filename);
// report.docx

👉 파일 경로나 URL에서 마지막 구분자 뒤 문자열을 쉽게 추출할 수 있습니다.

 

3. 주의할 점

  • 반환 타입은 String이므로 StringBuffer 메서드 체이닝 불가
  • 인덱스 범위를 벗어나면 StringIndexOutOfBoundsException 발생
StringBuffer sb = new StringBuffer("Java");
// sb.substring(10); // 예외 발생

 

4. 정리

  • substring(start) → start부터 끝까지 잘라 String 반환
  • substring(start, end) → 구간 지정하여 잘라 String 반환
  • 원본 StringBuffer는 변하지 않음
  • 파일명, 확장자, URL 파싱 등에 유용

 

🔑 한 줄 정리
👉 StringBuffer에서 원하는 구간만 추출해 String으로 얻으려면 substring()을 쓰자!

반응형
Comments