본문 바로가기
Java

StringBuilder

by KongJiHoon 2024. 9. 12.

StringBulider란?

StringBuilder는 Java에서 문자열을 조작할 때 성능을 향상시키기 위해 사용되는 클래스입니다. String 클래스는 불변(immutable)이라서 문자열을 변경하면 새로운 문자열 객체를 생성하는 반면, StringBuilder는 가변(mutable)이라서 동일 객체 내에서 문자열을 수정할 수 있습니다. 이러한 특성 덕분에 문자열을 반복적으로 연결하거나 변경할 때 StringBuilder가 더 효율적입니다.

 

StringBuilder 클래스의 특징

  • 가변성 (Mutability): 한 번 생성된 객체 내에서 문자열을 수정할 수 있어 String과 달리 새로운 객체를 생성하지 않음.
  • 동기화되지 않음 (Non-Synchronized): StringBuffer와 달리 동기화 처리가 되어 있지 않기 때문에 멀티 스레드 환경에서는 안전하지 않지만, 단일 스레드에서 성능이 더 좋음.
  • 효율적인 문자열 처리: 문자열 연결이나 수정이 빈번하게 일어날 때 유리함.

StringBuilder 생성 방법

StringBuilder sb = new StringBuilder();          // 기본 생성자
StringBuilder sb = new StringBuilder("Hello");   // 초기 문자열 지정

 

 

주요 메서드

1. append()

  • 문자열 끝에 새로운 문자열을 추가.
  • 다양한 타입의 데이터를 받아들여 문자열로 변환 후 추가.
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");  // "Hello World"
sb.append(123);       // "Hello World123"

 

2. insert()

  • 특정 위치에 문자열을 삽입.
StringBuilder sb = new StringBuilder("Hello");
sb.insert(5, " World");  // "Hello World"

 

3. replace()

  • 문자열의 일부분을 다른 문자열로 대체.
StringBuilder sb = new StringBuilder("Hello World");
sb.replace(6, 11, "Java");  // "Hello Java"

 

 

4. delete()

  • 지정한 범위의 문자열을 삭제.
StringBuilder sb = new StringBuilder("Hello World");
sb.delete(5, 11);  // "Hello"

 

 

5. deleteCharAt()

  • 지정한 위치의 문자 하나를 삭제.
StringBuilder sb = new StringBuilder("Hello World");
sb.deleteCharAt(5);  // "HelloWorld"

 

 

6. reverse()

  • 문자열을 뒤집음.
StringBuilder sb = new StringBuilder("Hello");
sb.reverse();  // "olleH"

 

7. setCharAt()

  • 특정 인덱스의 문자를 변경.
StringBuilder sb = new StringBuilder("Hello");
sb.setCharAt(1, 'a');  // "Hallo"

 

8. toString()

  • StringBuilder를 String으로 변환.
StringBuilder sb = new StringBuilder("Hello");
String str = sb.toString();  // "Hello"