728x90

문자열 폭발 문제에서 날 구해준 StringBuilder 클래스에 대한 문서를 살펴보았다.
전에 짝꿍이 쓰는 걸 봤는데 이번에 어떤 메소드가 있는지 제대로 알아보았다.
StringBuilder
StringBuilder란
Java Development Kit Version 20 API Specification
public class StringBuilder
extends object
implements Serializable, Comparable<StringBuilder>, CharSequence
StringBuilder란 변경 가능한 문자들의 나열(sequence)이다. StringBuffer와 비슷하지만, 동기화를 보장할 수는 없다.
일반적인 경우, StringBuffer보다 빠르다. … 고 써있다.
StringBuilder는 single thread에서 적합하기 때문에 multiple thread에서 StringBuilder의 인스턴스들은 안전하진 않아서 multiple thread 에서 사용해야 한다면 StringBuffer를 사용하는 것을 권장한다.
StringBuilder 사용하기
생성하기
StringBuilder sb = new StringBuilder();
StringBuilder sb = new StringBuilder(int capacity);
StringBuilder sb = new StringBuilder(CharSequence seq);
StringBuilder sb = new StringBuilder(String str);
StringBuilder()
StringBuilder는 기본 16개 character만큼의 공간이 주어진다.
StringBuilder(int capacity)
16칸이 아닌 capacity 만큼의 공간이 할당되어 생성된다.
StringBuilder(CharSequence seq)
charsequence(char 값을 읽을 수 있는 시퀀스라고 함)
16 + seq.length()
만큼의 공간이 할당되고, 해당 문자열이 입력된다.
StringBuilder(String str)
16 + seq.length()
만큼의 공간이 할당되고, 해당 문자열이 입력된다.
관련 메소드
자주 사용할 만한 메소드만 골라 보았다.
append()
문자 붙이기
StringBuilder sb = new StringBuilder();
StringBuilder sb.append(char c);
StringBuilder sb.append(String s);
StringBuilder sb.append(int i);
StringBuilder sb.append(StringBuffer sbf);
delete()
삭제하기
void sb.delete(int start, int end); // 시작 인덱스부터 끝 인덱스 전까지 해당하는 문자 삭제
void sb.deleteCharAt(int index); // 인덱스에 해당하는 문자 삭제
indexOf()
특정 문자열 검색
int sb.indexOf(String str); // str이 처음 등장하는 문자열의 시작 인덱스 반환
int sb.indexOf(String str, int fromIndex); // fromIndex부터 str에 해당하는 문자열이 시작되는 인덱스 반환
문자열 조작
StringBuilder sb.insert(int offset, ___); // offset에 문자열 삽입
void setLength(int newLength); // 길이 초기화 (앞에서부터)
String sb.subString(int start, int end);
String sb.subString(int start); // start ~ end 전까지 자르고 문자열 return
String sb.toString() // 문자열로 바꾸기
728x90
'Java > 클래스' 카테고리의 다른 글
Java String (0) | 2023.08.30 |
---|