- 변경이 가능한 문자열을 표현하기 위한 클래스
- 두 클래스의 인스턴스는 문자열이 아님!
StringBuilder
- 문자열 저장, 수정을 위한 메모리 공간(버퍼)를 가지고 있으며 이 크기는 자동 조절됨
* 크기 조절하기 위해 사용되는 대표적 생성자
( ... 되도록 버퍼 크기를 미리 할당해 놓는 것이 효율적이다)
1) public StringBuilder()
: 16개 문자 저장 버퍼 생성, 추가적인 문자 저장에 따라 크기 자동 증가
2) public StringBuilder(int n)
: 넘겨받은 수(n)만큼 문자 저장 버퍼 생성
3) public StringBuilder(String str)
: 넘겨받은 문자열의 길이 + 16 개 문자 저장 버퍼 생성
* 중요한 메소드
1) append : 넘겨받은 값을 StringBuilder의 인스턴스 내의 문자열 끝에 문자 형태로 추가
2) insert : 첫번째 매개변수는 인스턴스 내의 문자열에서의 위치(0부터 시작)
두번째 매개변수는 문자 형태로 저장하려는 데이터
ex)
public class ExStringBuilder
{
public static void main(String[] args)
{
StringBuilder strBuf1 = new StringBuilder("AAA");
strBuf1.append("BBB");
strBuf1.append(22);
strBuf1.append('!');
System.out.println(strBuf1); //AAABBB22! 출력
StringBuilder strBuf2 = new StringBuilder("ABCDEF");
strBuf2.insert(1, "MM");
System.out.println(strBuf2); //AMMBCDEF 출력
strBuf2.insert(5, 22);
System.out.println(strBuf2); //AMMBC22DEF 출력
}
}
|
StringBuffer ... StringBuilder 클래스와 거의 동일
1) 메소드 수(+생성자) 2) 메소드 기능 3) 메소드 이름과 매개변수 가 동일
* 차이 : StringBuffer는 Thread에 안전
StringBuilder는 Thread에 안전하지 못함