어제 오늘 내일

[Java StringBuilder] insert() – 원하는 위치에 문자열 삽입하기 본문

IT/Java

[Java StringBuilder] insert() – 원하는 위치에 문자열 삽입하기

hi.anna 2025. 9. 20. 12:49

append()가 문자열을 뒤에 붙이는 기능이라면, insert()는 원하는 위치에 문자열이나 데이터를 끼워 넣을 수 있습니다.
문자열 수정이 잦은 상황에서 아주 유용하게 쓰이는 메서드입니다.

 

1. insert() 기본 사용법

public StringBuilder insert(int offset, String str)
  • offset 위치에 str을 삽입
  • 기존 문자열은 잘리지 않고, 지정한 위치부터 오른쪽으로 밀림
StringBuilder sb = new StringBuilder("Java World");
sb.insert(5, "Programming ");
System.out.println(sb.toString());
// 출력: Java Programming World

👉 "Java " 뒤에 "Programming "을 끼워 넣었습니다.

 

2. 다양한 오버로드

insert()는 문자열뿐 아니라 숫자, 불리언, 문자 등 다양한 타입도 지원합니다.

StringBuilder sb = new StringBuilder("Hello!");
sb.insert(5, 123);       // 숫자 삽입
sb.insert(0, true);      // 맨 앞에 불리언 삽입
sb.insert(4, 'X');       // 중간에 문자 삽입

System.out.println(sb.toString());
// 출력: trueHellXo123!

👉 다양한 타입을 자연스럽게 문자열에 삽입할 수 있습니다.

 

3. 실전 활용 예제

날짜 포맷팅

StringBuilder sb = new StringBuilder("20250822");
sb.insert(4, "-");  // 연-월 구분
sb.insert(7, "-");  // 월-일 구분

System.out.println(sb.toString());
// 출력: 2025-08-22

👉 문자열을 직접 잘라 합치는 것보다 훨씬 직관적이고 편리합니다.

HTML 태그 감싸기

StringBuilder sb = new StringBuilder("OpenAI");
sb.insert(0, "<b>");
sb.insert(sb.length(), "</b>");

System.out.println(sb.toString());
// 출력: <b>OpenAI</b>

👉 출력 문자열을 특정 태그로 감싸야 할 때도 insert()로 쉽게 구현할 수 있습니다.

 

4. 주의할 점

  • offset이 문자열 길이보다 크거나 음수라면 StringIndexOutOfBoundsException 발생
  • 삽입 위치는 0부터 시작하는 인덱스 기준
StringBuilder sb = new StringBuilder("Test");
// sb.insert(10, "X"); // 에러 발생

 

5. 정리

  • insert(offset, data) → 원하는 위치에 문자열이나 데이터를 삽입
  • 문자열, 숫자, 불리언, 문자 등 다양한 타입 지원
  • 날짜 포맷, 태그 삽입, 문자열 가공에 유용
  • 인덱스 범위 체크 필수

👉 문자열 중간에 새로운 내용을 추가하고 싶을 때는 StringBuilder.insert()를 쓰자!

반응형
Comments