자바에서 문자열을 생각하면 자연스럽게 String이 떠오른다.
String은 소위 불변(immutable) 객체라고 한다.
즉, String 객체는 한 번 생성되면 변경할 수 없다.
문자열을 연결할때 자주 사용하는 '+'연산자를 사용하여 문자열을 연결하면 새로운 문자열 객체가 생성된다는 것을 의마한다.
따라서, String 객체와 String 객체를 더하는 행위는 메모리 할당과 메모리 해제를 발생시키며 더하는 연산이 많아진다면 성능적으로 좋지 않다.
StringBuilder sb = new StringBuilder();
int 타입의 값으로 buffer의 사이즈(capacity)를 지정한다.
StringBuilder sb = new StringBuilder(20);
StringBuilder sb = new StringBuilder("aaa");
StringBuilder sb = new StringBuilder();
sb.append("abc");
sb.append(4).append("\n");
sb.insert(int offset, String str);
sb.insert(2, "ccc")
첫 번째와 두 번째 파라미터로 받는 숫자 인덱스에 위치한 문자열을 대체한다.
sb.replace(int index1, int index2, String str);
sb.replace(3, 6, "hi");
해당 인덱스부터 끝까지 인덱싱 한다.
start 부터 end - 1 까지 인덱싱 한다.
sb.substring(int start);
sb.substring(int start, int end);
sb.substring(5);
sb.substring(3, 7);
인덱스에 위치한 문자 하나를 삭제
sb.deleteCharAt(int index);
sb.deleteCharAt(3);
start 부터 end-1 까지의 문자를 삭제
sb.delete(int start, int end);
sb.delete(3, sb.length());
sb.toString();
sb.reverse();
sb.setCharAt(int index, String s);
현재 문자열보다 길게 조정하면 공백으로 채워지고, 현재 문자열보다 짧게 조정하면 나머지 문자는 삭제한다.
sb.setLength(int len)
문자열이 저장된 char[] 배열 사이즈를 현재 문자열 길이와 동일하게 조정.
String 클래스의 trim()이 앞 뒤 공백을 제거하는 것과 같이 공백 사이즈를 제공하는 것, 배열의 남는 사이즈는 공백이므로, 문자열 뒷부분의 공백을 모두 제거해준다고 보면 된다.
sb.trimToSize()