StringBuffer

박상준·2023년 6월 11일

자바(Java)

목록 보기
4/10

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의 주요 메서드

  • append(String str): 주어진 문자열 'str'을 현재 문자열의 끝에 추가합니다.
StringBuffer sb = new StringBuffer("Hello");
sb.append(" World!");
System.out.println(sb.toString());  // 출력: "Hello World!"
  • insert(int offset, String str): 주어진 문자열 str을 지정된 offset 위치에 삽입합니다.
StringBuffer sb = new StringBuffer("Hello");
sb.insert(5, " World!");
System.out.println(sb.toString());  // 출력: "Hello World!"
  • delete(int start, int end): 지정된 start부터 end 범위에 해당하는 문자열을 삭제합니다.
StringBuffer sb = new StringBuffer("Hello World!");
sb.delete(6, 12);
System.out.println(sb.toString());  // 출력: "Hello!"
  • replace(int start, int end, String str): 지정된 start부터 end 범위의 문자열을 주어지 str로 대체합니다.
StringBuffer sb = new StringBuffer("Hello World!");
sb.replace(6, 12, "Java");
System.out.println(sb.toString());  // 출력: "Hello Java!"
  • reverse(): 문자열을 역순으로 변환합니다.
StringBuffer sb = new StringBuffer("Hello");
sb.reverse();
System.out.println(sb.toString());  // 출력: "olleH"
  • setCharAt(int index, char ch): 지정된 index 위치의 문자를 주어진 ch로 변경합니다.
StringBuffer sb = new StringBuffer("Hello");
sb.setCharAt(1, 'a');
System.out.println(sb.toString());  // 출력: "Hallo"
  • substring(int start): 지정된 start 위치부터 문자열의 끝까지의 부분 문자열을 반환합니다.
StringBuffer sb = new StringBuffer("Hello World!");
String substring = sb.substring(6);
System.out.println(substring);  // 출력: "World!"
  • substring(int start, int end): 지정된 start부터 end 범위에 해당하는 부분 문자열을 반환합니다.
StringBuffer sb = new StringBuffer("Hello World!");
String substring = sb.substring(6, 11);
System.out.println(substring);  // 출력: "World"
  • length(): 현재 문자열의 길이를 반환합니다.
StringBuffer sb = new StringBuffer("Hello World!");
int length = sb.length();
System.out.println(length);  // 출력: 12
  • capacity(): StringBuffer의 현재 용량(capacity)을 반환합니다.
StringBuffer sb = new StringBuffer();
int capacity = sb.capacity();
System.out.println(capacity);  // 출력: 16
  • ensureCapacity(int minCapacity): 최소한의 용량을 보장하기 위해 StringBuffer의 용량을 조정합니다.
StringBuffer sb = new StringBuffer();
sb.ensureCapacity(20);
int capacity = sb.capacity();
System.out.println(capacity);  // 출력: 34
  • setLength(int newLength): StringBuffer의 길이를 지정된 newLength로 설정합니다.
StringBuffer sb = new StringBuffer("Hello World!");
sb.setLength(5);
System.out.println(sb.toString());  // 출력: "Hello"
  • toString(): StringBuffer를 String으로 변환하여 반환합니다.
StringBuffer sb = new StringBuffer("Hello World!");
String str = sb.toString();
System.out.println(str);  // 출력: "Hello World!"
profile
신입 개발자를 꿈꾸는 코린이

0개의 댓글