StringBuilder — 가변 문자열 클래스

StringBuilder — 가변 문자열 클래스

StringBuilder는 변경 가능한(mutable) 문자 시퀀스예요. 이 클래스는 StringBuffer와 호환되는 API를 제공하지만 동기화되지 않아 스레드 안전을 보장하지 않아요. StringBuilder는 단일 스레드에서 문자열 버퍼를 사용할 때 StringBuffer보다 우선해서 사용돼요 — StringBuffer의 과도한 동기화 오버헤드가 없기 때문이에요. 대부분의 구현에서 StringBuilder는 단일 스레드에서 StringBuffer보다 더 빠르게 동작해요. 안전하지 않지만 주로 단일 스레드 문자열 조립에 사용돼요.

출처: Java API Reference

본문

StringBuilderAbstractStringBuilder를 상속하고 CharSequence, Appendable, Serializable을 구현해요.

주요 생성자: StringBuilder(), StringBuilder(int capacity), StringBuilder(String str), StringBuilder(CharSequence seq).

주요 메서드:

public int length() — 길이를 반환해요.

public int capacity() — 현재 용량을 반환해요.

public void ensureCapacity(int minimumCapacity) — 최소 용량을 보장해요.

public void setLength(int newLength) — 길이를 설정해요.

public char charAt(int index) — 지정된 인덱스의 문자를 반환해요.

public void setCharAt(int index, char ch) — 지정된 인덱스의 문자를 설정해요.

public StringBuilder append(...) — 다양한 오버로드로 값을 끝에 추가해요. append(Object), append(String), append(int), append(boolean), append(char[]), append(double) 등이 있어요. 항상 this를 반환해 체이닝을 지원해요.

public StringBuilder insert(int offset, ...) — 지정된 오프셋에 값을 삽입해요.

public StringBuilder delete(int start, int end) / deleteCharAt(int index) — 부분 시퀀스를 제거해요.

public StringBuilder replace(int start, int end, String str) — 부분 시퀀스를 대체해요.

public StringBuilder reverse() — 시퀀스의 순서를 반대로 해요.

public String toString() — 버퍼 내용의 새 String을 반환해요.

public int indexOf(String str) / lastIndexOf(String str) — 부분 문자열을 검색해요.

public CharSequence subSequence(int start, int end) / substring(int start) — 부분 시퀀스를 반환해요.

StringBuilder는 반복적인 문자열 연결(+)보다 효율적으로 문자열을 조립하는 데 널리 사용돼요. append 등이 this를 반환하므로 메서드 체이닝으로 간결하게 작성할 수 있어요. 여러 스레드가 동시에 접근해야 한다면 동기화된 StringBufferString을 사용해야 해요.

더 알아보기 (Learn more)