logo

Java StringBuffer 클래스

Java StringBuffer 클래스는 변경 가능한(수정 가능한) String 개체를 만드는 데 사용됩니다. Java의 StringBuffer 클래스는 변경 가능하다는 점을 제외하면 String 클래스와 동일합니다.

참고: Java StringBuffer 클래스는 스레드로부터 안전합니다. 즉, 여러 스레드가 동시에 액세스할 수 없습니다. 따라서 안전하며 주문이 발생합니다.

StringBuffer 클래스의 중요한 생성자

건설자설명
스트링버퍼()초기 용량이 16인 빈 문자열 버퍼를 생성합니다.
StringBuffer(문자열 문자열)지정된 문자열로 문자열 버퍼를 생성합니다.
StringBuffer(정수 용량)지정된 용량을 길이로 사용하여 빈 문자열 버퍼를 생성합니다.

StringBuffer 클래스의 중요한 메소드

수정자 및 유형방법설명
공개 동기화 StringBuffer추가(문자열 s)이 문자열에 지정된 문자열을 추가하는 데 사용됩니다. Append() 메소드는 Append(char), Append(Boolean), Append(int), Append(Float), Append(Double) 등과 같이 오버로드됩니다.
공개 동기화 StringBufferinsert(int 오프셋, 문자열 s)지정된 위치에 이 문자열과 함께 지정된 문자열을 삽입하는 데 사용됩니다. insert() 메소드는 insert(int, char), insert(int, boolean), insert(int, int), insert(int, float), insert(int, double) 등과 같이 오버로드됩니다.
공개 동기화 StringBuffer교체(int startIndex, int endIndex, 문자열 str)지정된 startIndex 및 endIndex의 문자열을 바꾸는 데 사용됩니다.
공개 동기화 StringBuffer삭제(int startIndex, int endIndex)지정된 startIndex 및 endIndex에서 문자열을 삭제하는 데 사용됩니다.
공개 동기화 StringBuffer뒤집다()문자열을 반전시키는 데 사용됩니다.
공개 정수용량()현재 용량을 반환하는데 사용됩니다.
공개 무효verifyCapacity(int 최소 용량)주어진 최소값과 최소한 동일한 용량을 보장하는 데 사용됩니다.
공개 문자charAt(정수 인덱스)지정된 위치의 문자를 반환하는데 사용됩니다.
공개 정수길이()문자열의 길이, 즉 총 문자 수를 반환하는 데 사용됩니다.
공개 문자열하위 문자열(int startIndex)지정된 BeginIndex에서 하위 문자열을 반환하는 데 사용됩니다.
공개 문자열하위 문자열(int startIndex, int endIndex)지정된 BeginIndex 및 endIndex에서 하위 문자열을 반환하는 데 사용됩니다.

변경 가능한 문자열이란 무엇입니까?

수정되거나 변경될 수 있는 문자열을 가변 문자열이라고 합니다. StringBuffer 및 StringBuilder 클래스는 변경 가능한 문자열을 만드는 데 사용됩니다.

1) StringBuffer 클래스 Append() 메소드

Append() 메소드는 주어진 인수를 이 문자열과 연결합니다.

StringBufferExample.java

 class StringBufferExample{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello '); sb.append('Java');//now original string is changed System.out.println(sb);//prints Hello Java } } 

산출:

 Hello Java 

2) StringBuffer insert() 메소드

insert() 메소드는 주어진 문자열을 주어진 위치에 이 문자열과 함께 삽입합니다.

StringBufferExample2.java

 class StringBufferExample2{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello '); sb.insert(1,'Java');//now original string is changed System.out.println(sb);//prints HJavaello } } 

산출:

 HJavaello 

3) StringBuffer 교체() 메소드

replacement() 메소드는 지정된 BeginIndex 및 endIndex에서 지정된 문자열을 대체합니다.

StringBufferExample3.java

 class StringBufferExample3{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello'); sb.replace(1,3,'Java'); System.out.println(sb);//prints HJavalo } } 

산출:

 HJavalo 

4) StringBuffer delete() 메소드

StringBuffer 클래스의 delete() 메소드는 지정된 BeginIndex부터 endIndex까지 문자열을 삭제합니다.

StringBufferExample4.java

 class StringBufferExample4{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello'); sb.delete(1,3); System.out.println(sb);//prints Hlo } } 

산출:

 Hlo 

5) StringBuffer reverse() 메소드

StringBuilder 클래스의 reverse() 메서드는 현재 문자열을 반전시킵니다.

StringBufferExample5.java

 class StringBufferExample5{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello'); sb.reverse(); System.out.println(sb);//prints olleH } } 

산출:

 olleH 

6) StringBuffer 용량() 메소드

StringBuffer 클래스의 capacity() 메서드는 버퍼의 현재 용량을 반환합니다. 버퍼의 기본 용량은 16입니다. 현재 용량보다 문자 수가 증가하면 (oldcapacity*2)+2만큼 용량이 늘어납니다. 예를 들어 현재 용량이 16이라면 (16*2)+2=34가 됩니다.

StringBufferExample6.java

 class StringBufferExample6{ public static void main(String args[]){ StringBuffer sb=new StringBuffer(); System.out.println(sb.capacity());//default 16 sb.append('Hello'); System.out.println(sb.capacity());//now 16 sb.append('java is my favourite language'); System.out.println(sb.capacity());//now (16*2)+2=34 i.e (oldcapacity*2)+2 } } 

산출:

 16 16 34 

7) StringBuffer verifyCapacity() 메소드

StringBuffer 클래스의 verifyCapacity() 메서드는 주어진 용량이 현재 용량의 최소값인지 확인합니다. 현재 용량보다 클 경우 (oldcapacity*2)+2만큼 용량을 증가시킵니다. 예를 들어 현재 용량이 16이라면 (16*2)+2=34가 됩니다.

StringBufferExample7.java

 class StringBufferExample7{ public static void main(String args[]){ StringBuffer sb=new StringBuffer(); System.out.println(sb.capacity());//default 16 sb.append('Hello'); System.out.println(sb.capacity());//now 16 sb.append('java is my favourite language'); System.out.println(sb.capacity());//now (16*2)+2=34 i.e (oldcapacity*2)+2 sb.ensureCapacity(10);//now no change System.out.println(sb.capacity());//now 34 sb.ensureCapacity(50);//now (34*2)+2 System.out.println(sb.capacity());//now 70 } } 

산출:

 16 16 34 34 70