본문 바로가기

자바공부

자바 StringBuffer 클래스 개념 공부

728x90
반응형

* StringBuffer 클래스도 String 클래스와 동일하게 java.lang 패키지에 포함되어 있으며, 문자열을 다룬다.

String 클래스와 차이점은 String 객체의 경우 내부의 문자열을 수정할 수 없지만, StringBuffer 객체는 문자열을 저장하는 가변 버퍼를 가지고 있기 때문에 저장된 문자열의 수정이 가능하다.

즉, StringBuffer 클래스는 String 클래스와는 달리 가변 버퍼를 가지므로 문자열의 수정이 가능

문자열의 크기가 늘어나면 내부 버퍼 크기를 자동 조절한다.

// SringBuffer 객체 생성
StringBuffer sb = new StringBuffer("Java");

 

* StringBuffer 클래스의 주요 생성자

생성자 설명
StringBuffer() 초기 버퍼의 크기가 16인 스트링 버퍼 객체 생성
StringBuffer(charSequence seq) seq가 지정하는 일련의 문자들을 포함하는 스트링 버퍼 생성
StringBuffer(int capacity) 지정된 초기 크기를 갖는 스트링 버퍼 객체 생성
StringBuffer(String str) 지정된 스트링으로 초기화된 스트링 버퍼 객체 생성

 

# 간단한 문자열을 처리하는 것: String 클래스를 이용

문자열의 길이가 길거나 문자열이 수시로 변하는 경우: StringBuffer 클래스를 이용

 

* StringBuffer 클래스의 주요 메소드

메소드 설명
StringBuffer append(String str) str 스트링을 스트링 버퍼에 덧붙인다. (+와 같은 기능)
StringBuffer append(StringBuffer sb) sb 스트링 버퍼를 현재의 스트링 버퍼에 덧붙인다.
이 결과 현재 스트링 버퍼의 내용이 변한다.
int capacity() 스트링 버퍼의 현재 크기 리턴
StringBuffer delete(int start, int end) start 위치에서 end 위치 앞까지 부분 문자열 삭제
StringBuffer insert(int offset, String str) str 스트링을 스트링 버퍼의 offset 위치에 삽입
StringBuffer replace(int start, int end, String str) 스트링 버퍼 내의 start 위치의 문자부터 end가 지정하는 문자 앞의 서브 스트링을 str로 대치 (위치는 0부터 시작한다.)
StringBuffer reverse() 스트링 버퍼 내의 문자들을 반대 순서로 변경
void setLength(int newLength) 스트링 버퍼 내 문자열 길이를 newLength로 재설정, 현재 길이보다 큰 경우 널 문자(' ')로 채우며 작은 경우는 기존 문자열이 잘린다.

 

* StringBuffer 클래스 메소드 활용

ex)

 

public class StringBufferEx{
	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer("This");
		
		sb.append(" is pencil"); // 문자열 덧붙이기
		System.out.println(sb);
		
		sb.insert(7, " my"); // "my" 문자열 삽입
		System.out.println(sb);
		
		sb.replace(8, 10, "your"); // "my"를 "your"로 변경
		System.out.println(sb);
		
		sb.delete(8, 13); // "your " 삭제
		System.out.println(sb);
		
		sb.setLength(4); // 스트링 버퍼 내 문자열 길이 수정
		System.out.println(sb); // sb.toString()으로 자동 바뀜 
	}
}

실행 결과

This is pencil

This is my pencil

This is your pencil

This is pencil

This

 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
T h i s   i s   y o u r   p e n c i l
반응형