어제 오늘 내일

[Java StringBuilder] delete() / deleteCharAt() – 문자열 삭제하기 본문

IT/Java

[Java StringBuilder] delete() / deleteCharAt() – 문자열 삭제하기

hi.anna 2025. 8. 22. 01:50

StringBuilder는 문자열을 효율적으로 수정할 수 있는 클래스입니다.
그중에서도 일부 문자열을 지우는 기능을 제공하는 메서드가 delete()deleteCharAt()입니다.

 

1. delete() 기본 사용법

public StringBuilder delete(int start, int end)
  • start 인덱스부터 end 직전까지의 문자열을 삭제
  • end 인덱스는 포함되지 않음 (반개구간)
StringBuilder sb = new StringBuilder("Java Programming");
sb.delete(5, 16);
System.out.println(sb.toString());
// 출력: Java 

👉 "Programming" 부분이 삭제되고 "Java "만 남습니다.

 

2. deleteCharAt() 기본 사용법

public StringBuilder deleteCharAt(int index)
  • 지정한 위치의 단일 문자를 삭제
StringBuilder sb = new StringBuilder("abcdef");
sb.deleteCharAt(2);
System.out.println(sb.toString());
// 출력: abdef

👉 인덱스 2'c'가 삭제되었습니다.

 

3. 실전 활용 예제

문자열 중간 공백 제거

StringBuilder sb = new StringBuilder("Hello  World");
sb.deleteCharAt(5); // 중복된 공백 제거
System.out.println(sb.toString());
// 출력: Hello World

특정 패턴 삭제

StringBuilder sb = new StringBuilder("2025-08-22");
sb.delete(4, 5); // '-' 제거
sb.delete(6, 7); // 두 번째 '-' 제거
System.out.println(sb.toString());
// 출력: 20250822

👉 날짜 문자열을 포맷 변경할 때 유용합니다.

문자열 길이 조절

StringBuilder sb = new StringBuilder("This is a long text");
sb.delete(10, sb.length()); 
System.out.println(sb.toString());
// 출력: This is a 

👉 substring처럼 문자열을 잘라낼 수 있습니다.

 

4. 주의할 점

  • delete()deleteCharAt()에서 인덱스 범위를 벗어나면 StringIndexOutOfBoundsException 발생
  • delete(start, end)start == end일 경우 아무 것도 삭제하지 않음
StringBuilder sb = new StringBuilder("Hello");
// sb.delete(10, 12); // 예외 발생

 

5. 정리

  • delete(start, end) → 특정 구간 삭제
  • deleteCharAt(index) → 단일 문자 삭제
  • 문자열 중간 공백 제거, 포맷 변경, 잘라내기 등에 활용
  • 인덱스 범위 유효성 체크 필요

👉 문자열 일부를 지워야 한다면 StringBuilder.delete()deleteCharAt()을 기억해 두자!

반응형
Comments