String 클래스처럼 문자열을 다루는 StringBuilder, StringBuffer 클래스
자바에서 문자열을 나타내는 대표적인 클래스 1.. String 2.. StringBuilder 3.. StringBuffer |
String 클래스는 Immutable 클래스이다
하지만, StringBuilder, StringBuffer 클래스는 mutable 즉, 변경이 자유롭다.
String 클래스에서 문자열을 생성하고 수정을하는 메소드(concat, replace 등)를 사용하면 원래의 문자열에
덧붙히는게 아닌, 새로운 문자열을 만들어서 바꿨지만,
StringBuilder나 StringBuffer 클래스의 경우에는 자기 자신에 추가하여 바꾼다.
----->>>String 클래스는 문자열을 한 번 생성하면 크기를 변경할 수 없지만, (immutable)
StringBuilder, StringBuffer 클래스는 문자열을 생성한 후에 크기를 자유롭게 변경이 가능하다(mutable)
String 클래스로 문자열을 만들면 그 String 클래스에 대한 연산이 많아질 경우, 성능이 안 좋아진다.
StringBuilder, StringBuffer의 경우 연산이 많아질 경우에는 String보다 성능이 좋다.
--> 문자열에 대한 연산이 거의 없을 경우 String, 그 반대의 경우에는 StringBuilder, StringBuffer를 사용
성능표
String Builder > StringBuffer > String |
StringBuilder 클래스와 StringBuffer 클래스 메소드
메소드 | 설명 |
append(자료형 a) | a를 현재 문자열의 마지막 위치에 추가 |
capacity() | 현재 StringBuilder에 할당된 크기를 반환 |
charAt(int index) | index 위치에 있는 문자를 출력 |
delete(int start, int end) | start부터 end-1 위치까지 문자를 제거 |
insert(int offset, 자료형 a) | offset 위치에 a를 문자열로 추가 |
length() | 현재 문자열의 길이를 반환 |
replace(int start, int end, String str) | start부터 end-1 위치까지 str로 대체 |
substring(int start, int end) | start부터 end-1 위치까지 출력 |
toString() | 현재 문자열을 String형으로 반환 |
StringBuilder
다른 클래스들과 동일하게 다음과 같이 인스턴스화를 시켜준다.
자신이 처음에 초기화를 시키고 싶은 경우 -->
StringBuilder 이름 = new StringBuilder("초기화내용");
자신이 처음에 Capacity(StringBuilder의 초기 할당 크기)를 원하는 만큼 설정하고 싶은 경우 -->
StringBuilder 이름 = new StringBuilder(할당크기);
append 메소드
capacity 메소드
charAt 메소드
delete 메소드
insert 메소드
length 메소드
replace 메소드
substring 메소드
toString 메소드
'Backend > JAVA' 카테고리의 다른 글
[JAVA] 배치 관리자(Layout manager) (0) | 2022.03.02 |
---|---|
[JAVA] Java Swing (0) | 2022.03.02 |
[JAVA] String 클래스 (0) | 2022.03.02 |
[JAVA] 예외 처리 Exception (0) | 2022.03.02 |
[JAVA] 바이트기반 Stream (0) | 2022.02.24 |