728x90

StringBuffer

String과 다르게 내용을 변경할 수 있는 문자형 배열

크기를 지정하지 않을 시 기본 크기는 16으로 지정되고, 저장할 문자열의 길이를 고려해 적절한 크기로 생성해야 함

동기화가 되어 있어 멀티 쓰레드에 안전

싱글 쓰레드 프로그램에서는 동기화는 성능을 떨어트리기 때문에 사용하지 않지만

멀티 쓰레드에서는 StringBuffer를 사용하는 것이 좋음

선언

StringBuffer 참조변수명 = new StringBuffer("문자열" 혹은 길이);

주의

equals 메소드가 오버라이딩 되어있지 않기 때문에 주소를 비교하기 때문에 문자열의 내용을 비교하려면

toString 메소드를 사용하여 String으로 변환하여 String의 equals 메소드를 사용해야 함

StringBuilder

기존의 스트링 클래스는 수정할 때마다 새로운 객체를 생성해야 하지만 스트링 빌더는 가변하기 때문에

객체를 새로 생성할 필요가 없어 문자열을 반복적으로 수정하거나 긴 문자열을 처리할 때 유용

동기화되어 있지 않아 멀티 쓰레드에 안전하지 않음

하지만 싱글 쓰레드 프로그램에서는 동기화는 성능을 떨어트리기 때문에

싱글 쓰레드에서는 StringBuilder를 사용하는 것이 좋음

선언

StringBuilder 참조변수명 = newStringBuilder(내용)

 

메소드

append() : 매개변수의 값을 StringBuffer의 문자열 맨 뒤에 추가

capacity() : StringBuffer 인스턴스의 버퍼 크기(char형 배열의 길이)를 알려줌

length() : 담겨있는 문자열의 길이를 알려줌 (빈 공간은 포함하지 않음)

charAt() : 지정 인덱스에 있는 문자 반환

delete() : 시작 위치부터 끝 위치 사이의 문자를 제거하지만 끝 위치의 문자는 제외

deleteCharAt() : 지정 인덱스의 문자 하나만을 제거

insert() : 지정 인덱스에 문자를 추가

replace() : String의 replace와 같음

reverse() : StringBuffer에 저장된 문자열의 순서를 거꾸로 나열함

setCharAt() : 지정 인덱스 문자를 주어진 문자로 바꿈

setLength() : 길이를 줄이는 경우 길이보다 큰 인덱스에 있던 문자열은 지워지고, 만약 길이가 더 길어서 빈 공간은

문자열의 기본값이 null로 채워짐

toString() : String 타입으로 변환

substring() : String의 substring과 같음

'Java > Notion' 카테고리의 다른 글

Class / Method  (0) 2023.04.24
ArrayList  (0) 2023.04.23
Math  (0) 2023.04.23
String  (0) 2023.04.19
배열  (0) 2023.04.19

+ Recent posts