StringBuffer란?
StringBuffer 클래스는 Java에서 제공하는 가변(mutable) 문자열을 처리하기 위한 클래스입니다. StringBuffer는 문자열을 추가, 수정, 삭제하는 작업을 효율적으로 수행할 수 있는 다양한 메서드를 제공합니다.
왜 사용할까?
StringBuffer 클래스는 문자열을 가변적으로 처리할 수 있는 이점을 가지고 있습니다. 일반적인 String 클래스와 달리, StringBuffer 클래스는 문자열을 직접 수정할 수 있으며, 이를 통해 문자열 조작에 대한 선능 개선을 도모할 수 있습니다. 왜냐하면, String 클래스의 경우 문자열의 수정이 발생하면 새로운 문자열을 생성하게 되어 메모리 공간과 성능에 부담을 줄 수 있기 때문입니다.
StringBuffer의 생성자
StringBuffer 클래스의 인스턴스를 생설할 때, 적절한 길의 char형 배열이 생성되고, 이 배열은 문자열을 저장하고 편집하기 위한 공간(buffer)으로 사용된다.
public StringBuffer(int length) {
value = new char[length];
shared = false;
}
public StringBuffer() {
this(16); // 버퍼의 크기를 지정하지 않으면 버퍼의 크기는 16이 된다.
}
public StringBuffer(String str) {
this(str.length() + 16); // 지정한 문자열의 길이보다 16이 더 크게 버퍼를 생성한다.
append(str);
}
StringBuffer의 주요 메서드
StringBuffer sb = new StringBuffer("Hello");
sb.append(" World!");
System.out.println(sb.toString()); // 출력: "Hello World!"
StringBuffer sb = new StringBuffer("Hello");
sb.insert(5, " World!");
System.out.println(sb.toString()); // 출력: "Hello World!"
StringBuffer sb = new StringBuffer("Hello World!");
sb.delete(6, 12);
System.out.println(sb.toString()); // 출력: "Hello!"
StringBuffer sb = new StringBuffer("Hello World!");
sb.replace(6, 12, "Java");
System.out.println(sb.toString()); // 출력: "Hello Java!"
StringBuffer sb = new StringBuffer("Hello");
sb.reverse();
System.out.println(sb.toString()); // 출력: "olleH"
StringBuffer sb = new StringBuffer("Hello");
sb.setCharAt(1, 'a');
System.out.println(sb.toString()); // 출력: "Hallo"
StringBuffer sb = new StringBuffer("Hello World!");
String substring = sb.substring(6);
System.out.println(substring); // 출력: "World!"
StringBuffer sb = new StringBuffer("Hello World!");
String substring = sb.substring(6, 11);
System.out.println(substring); // 출력: "World"
StringBuffer sb = new StringBuffer("Hello World!");
int length = sb.length();
System.out.println(length); // 출력: 12
StringBuffer sb = new StringBuffer();
int capacity = sb.capacity();
System.out.println(capacity); // 출력: 16
StringBuffer sb = new StringBuffer();
sb.ensureCapacity(20);
int capacity = sb.capacity();
System.out.println(capacity); // 출력: 34
StringBuffer sb = new StringBuffer("Hello World!");
sb.setLength(5);
System.out.println(sb.toString()); // 출력: "Hello"
StringBuffer sb = new StringBuffer("Hello World!");
String str = sb.toString();
System.out.println(str); // 출력: "Hello World!"