Java StringBuffer 클래스

I C-AN·2021년 7월 23일
0

Java

목록 보기
14/26

StringBuffer 클래스

String과 마찬가지로 문자열을 저장하고 다루는 클래스

  • String처럼 문자형 배열(char[])을 내부적으로 가지고 있다
  • String과 달리 내용을 변경할 수 있다

StringBuffer의 생성자

  • 배열은 길이 변경 불가, 공간이 부족하면 새로운 배열을 생성해야 한다
  • StringBuffer는 저장할 문자열의 길이를 고려해서 적절한 크기로 생성해야 한다
public StringBuffer (int length) {
	value = new char[length];
	shared=false;
}

public StringBuffer() {
	this(16); // 버퍼 크기의 초기값
}

public StringBuffer(String str) {
	this.(str.length() + 16); // 지정한 문자열의 길이보다 16이 더 크게 생성
	append(str);
}

StringBuffer의 변경

StringBuffer sb = new StringBuffer("abc");
sb.append("123"); // abc123
  • 새로운 객체를 생성하는 것이 아닌 기존의 문자열에 새로운 문자열이 추가되어 변경됨
  • append()는 지정된 내용을 StringBuffer에 추가 후, StringBuffer의 참조를 반환
  • 반환타입은 StringBuffer

StringBuffer의 비교

StringBuffer sb = new StringBuffer("abc");
StringBuffer sb2 = new StringBuffer("abc");

sb == sb2; // false
sb.equals(sb2); // false

String s = sb.toString();
String s2 = sb2.toString();

s.equals(s2); // true
  • StringBuffer는 equals()가 오버라이딩되어있지 않다 (주소 비교)
  • String으로 변환 후에 equals()로 비교해야 한다
profile
할 수 있다

0개의 댓글