문자열을 저장하는 String은 내부의 문자열을 수정할 수 없다.
예를 들어 String의 resplace() 메소드는 내부의 문자를 대치하는 것이 아나라
대치된 새로운 문자열을 리턴,
String 객체를 + 연산할 경우도 마찬가지
-> 문자열을 결합하는 + 연산자를 많이 사용하면 할수록 그만큼 String 객체의 수가 늘어나기 때문
프로그램 성능을 느리게 하는 요인이 된다
문자열을 변경하는 작업이 많을 경우에는 String 클래스를 사용하는 것 보다
java.lang 패키지의 StringBuffer, StirngBuilder 클래스를 사용
내부 버퍼(buffer : 데이터를 임시로 저장하는 메모리) 에 문자열을 저장
추가, 수정, 삭제 작업을 할수 있도록 설계
String 처럼 새로운 객체를 만들지 않고도 문자열을 조작
StringBuffer와 StringBuilder 의 사용 방법은 동일
차이점은 StringBuffer 는 멀티 스레드 환경에서 사용할 수 있도록 동기화가 적용, 스레드에 안전
StringBuilder는 단이 스레드 환경에사만 사용하도록 설계
StringBuilder 클래스는 몇가지 생성자를 제공
기본 생성자 StringBuider()는 16개의 문자들을 저장할 수 있는 초기 버퍼를 만듬
StirngBuilder(int capacity) 생성자는 capacity로 주어진 개수만큼 문자들을 저장할 수 있는 초기 버퍼를 만듬
StringBuilder는 버퍼가 부족할 경우 자동으로 버퍼 크기를 늘리기 때문에 초기 버퍼의 크기는 그다지 중요 X
StringBuilder(String str) 생성자는 str 로 주어진 매개값을 버퍼의 초기값으로 저장
메소드 | 설명 |
append(..) | 문자열 끝에 주어진 매개값을 추가 |
insert(int offset, ...) | 문자열 중간에 주어진 매개값을 추가 |
delete(int start, ine end) | 문자열의 일부분을 삭제 |
deleteChaerAt(int index) | 문자열에서 주어진 index의 문자를 삭제 |
replace(int Start, int end,Stirng str) | 문자열의 일부분을 다른 문자열로 대치 |
reverse() | 문자열의 순서를 뒤바꿈 |
setCharAt(int index, char ch) | 문자열에서 주어진 index의 문자를 다른 문자로 대치 |
append() 와 insert() 메소드는 매개 변수가 다양한 타입으로 오버로딩 되어 있기 때문에
대부분의 값을 문자로 추가또는 삽입 가능 하다
'Back-end > 이것이 자바다[신용권 한빛미디어]' 카테고리의 다른 글
Array 클래스 (0) | 2021.10.24 |
---|---|
정규 표현식과 Pattern 클래스 (0) | 2021.10.24 |
StringTokenizer 클래스 (0) | 2021.10.24 |
String 클래스 (0) | 2021.10.23 |
Class 클래스 (0) | 2021.10.23 |