StringBuffer클래스
- String처럼 문자형 배열(char[])을 내부적으로 가지고 있음
- String은 불변이지만 StringBuffer은 변경가능
- 배열은 길이 변경불가. 공간이 부족하면 새로운 배열을 생성해야 함
- stringBuffer는 저장할 문자열의 길이를 고려해서 적절한 크기로 생성해야 함
1 | StringBuffer sb = new StringBuffer("aaa") |
2 | sb.append("123").append("ZZ"); |
3 | |
4 | sb = "aaa123ZZ" |
- StringBuffer는 equals()가 오버라이딩되어있지 않아서 String으로 변환 후 equals()로 비교해야 함
StringBuffer의 생성자와 메서드
- StringBuffer()
- 16문자를 담을 수 있는 버퍼를 가진 StringBuffer인스턴스를 생성
- StringBuffer(int length)
- 지정된 개수의 문자를 담을 수 있는 버퍼를 가진 StringBuffer인스턴스를 생성
- StringBuffer(String str)
- 지정된 문자열 값을 갖는 StringBuffer인스턴스를 생성
- StringBuffer delete(int start, int end)
- 시작위치부터 끝위치 사이에 있는 문자를 제거
- StringBuffer deleteCharAt(int index)
- 지정된 위치의 문자를 제거
- StringBuffer insert
- 두번째 매개변수로 받은 값을 문자열로 변환하여 지정된 위치에 추가. pos는 0부터 시작
- int length()
- StringBuffer인스턴스에 저장되어 있는 문자열의 길이를 반환
- StringBuffer replace(int start, int end, string str)
- 지정된 범위의 문자들을 주어진 문자열로 바꿈. end위치의 문자는 범위에 포함 되지 않음
- StringBuffer reverse()
- StringBuffer인스턴스에 저장되어 있는 문자열의 순서를 거꾸로 나열
- void setCharAt(int index, char ch)
- 지정된 위치의 문자를 주어진 문자로 바꿈
- void setLength(int newLength)
- 지정된 길이의 문자열의 길이를 변경. 길이를 늘리는 경우에 나머지 빈 공간을 널문자(‘\u0000’)로 채움
- String toString()
- StringBuffer인스턴스의 문자열을 String으로 반환
- String substring(int start, int end)
- 지정된 범위내의 문자열을 String으로 뽑아서 반환함. 시작위치만 지정하면 시작위치부터 문자열 끝까지 뽑아서 반환