기록하는 중/JAVA
[Java] StringBuffer 클래스
성장하는 요롱이
2023. 12. 21. 23:26
StringBuffer 클래스
- 객체 생성 이후 문자열을 수정할 수 있는 기능
- 내용 변경이 가능한 mutable 클래스
- 내부적으로 문자열을 저장하기 위해 크기가 조절되는 버퍼를 사용
생성자
- StringBuffer( ) : 초기 버퍼 크기 16
- StringBuffer(int length)
- StringBuffer(String str) : 초기 버퍼 크기는 (str의 길이 + 16)
주요 메소드
메소드 | 설명 |
int capacity( ) | 현재 할당되어있는 크기를 byte 단위로 측정( 기본 16byte + 문자크기) |
int length( ) | 주어진 문자열의 길이를 반환. |
char charAt(int index) | index 번째 문자를 반환 |
int indexOf(String str) | 문자열 중 입력받은 문자가 있으면 해당 문자의 index 값을 반환. 문자가 없으면 -1을 반환 |
int lastIndexOf(String str) | 끝부분부터 조회하며 문자열 중 입력받은 문자의 index 값을 반환. |
String subsstring(int index) | index부터 끝가지 문자를 잘라서 반환 |
String subsstring(int start, int end) | start부터 end-1까지 반환 |
StringBuffer append(char c) | 인자를 String 표현으로 바꾸고 원 문자열 끝에 추가하여 반환. 인자 : char[ ], Object, String, 기본 자료형 가능 |
StringBuffer delete(int start, int end) | start부터 end-1까지 문자열 삭제 |
StringBuffer insert(int offset, String s) | offset위치부터 s를 삽입 |
StringBuffer replace(int start, int end, String s) | start부터 end-1까지의 문자열을 s로 교체 |
StringBuffer reverse( ) | 문자열을 역순으로 변경 |
StringBuffer 와 StringBuilder
StringBuffer | StringBuilder | |
공통점 | - 문자열 연산 등으로 기존 객체 공간이 부족할 경우 기존 버퍼 크기를 늘리며 유연하게 동작 - 두 클래스가 제공하는 메소드는 동일 |
|
차이점 | - 멀티스레드 환경에서 동기화 지원. - 단일스레드 환경에서 동기화 처리로 인해 StringBuilder보다 성능이 좋지 않음. - 안전한 프로그램이 필요할 때나, 개발 중인 시스템의 부분이 스레드에 안전 한지 모를 경우 사용하면 좋음. |
- 동기화를 지원하지 않음. - 단일 스레드 환경에서 사용. - 스레드에 안전한지 여부가 전혀 관계없는 프로그램을 개발할 때 사용하면 좋음. |