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) 등과 같이 오버로드됩니다. |
공개 동기화 StringBuffer | insert(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