Java StringBuffer Class
java StringBuffer Class 는 변경가능한 스트링을 작성하는데에 사용됩니다.
StringBuffer Class 는 변경가능하다는 것을 제외하면 String class 와 동일합니다.
Note : JAVA StringBuffer Class는 스레드로부터 안전(thread-safe)합니다.
다시말하면 다중 스레드들은 동시에 접속 할 수 없습니다. 그러므로 안전하고, 순서대로 작업이 이루어질 수 있습니다.
StringBuffer Class 생성자의 중요성
1. StringBuffer() : 16의 초기용량으로 빈 스트링 버퍼를 작성합니다.
2. StringBuffer(String str): 지정된 스트링으로 스트링 버퍼를 작성합니다.
3. StringBuffer(int capacity): 길이로 지정된 용량으로 빈 스트링 버퍼를 작성합니다.
StringBuffer Class 메소드의 중요성
1. public synchronized StringBuffer append(String s): 지정된 문자열과 다른 문자열을 덧붙이는 데 사용합니다.
append() 메소드는 append(char), append(boolean), append(int), append(float), append(double) 처럼 과부화 받게 됩니다.
2. public synchronized StringBuffer insert(int offset, String s): 지정된 위치에 특정 문자열을 가진 지정된 문자열을 삽입하는 데 사용합니다.
insert() method는 insert(int, char), insert(int, boolean), insert(int, int), insert(int, float), insert(int, double) 처럼 과부화 받게 됩니다.
3. public synchronized StringBuffer replace(int startIndex, int endIndex, String str): 지정된 StartIndex와 endIndex로 부터 문자열을 재배치 하는데 사용합니다.
4. public synchronized StringBuffer delete(int startIndex, int endIndex): 지정된 StartIndex와 endIndex로 부터 문자열을 삭제하는데 사용합니다.
5. public synchronized StringBuffer reverse(): 문자열을 반대로 바꾸는데 사용합니다.
6. public int capacity(): 현재 용량을 반환하는데 사용합니다.
7. public void ensureCapacity(int minimumCapacity): 적어도 주어진 최소한 만큼 동일한 용량을 보장하는데 사용합니다.
8. public char charAt(int index): 지정된 위치에 특성을을 반환하는데 사용합니다.
9. public int length(): 문자열의 길이를 반환하는 데 사용합니다.
10. public String substring(int beginIndex): 지정된 beginIndex로부터 부분 문자열(substring)을 반환하는데 사용합니다.
11. public String substring(int beginIndex, int endIndex): 지정된 beginIndex 와 endIndex 로부터 부분 문자열을 반환하는데 사용합니다.
가변(변할 수 있는) String이 무엇인가?
수정되거나 변화될 수 있는 string (문자열)이 가변 문자열(mutable string)이라 알려져 있습니다.
StringBuffer 와 StringBuilder 클래스들은 가변 문자열을 작성하기 위해 사용합니다.
1) StringBuffer append() method
append() 메소드는 주어진 인수(argument)와 문자열을 연결한다
class A{
public static void main(String args[]){
StringBuffer sb=new StringBuffer("Hello ");
sb.append("Java"); //원래 스트링이 바뀐다.
System.out.println(sb); // Hello Java를 출력한다.
}
}
2) StringBuffer insert() method
insert() 메소드는 주어진 문자열과 문자열 사이 주어진 위치에 문자열을 삽입한다.
class A{
public static void main(String args[]){
StringBuffer sb=new StringBuffer("Hello ");
sb.insert(1,"Java"); //원래 스트링이 바뀐다.
System.out.println(sb); // HJavaello 를 출력한다.
}
}
3) StringBuffer replace() method
replace() 메소드는 지정된 beginIndex와 endIndex로부터 주어진 스트링을 재배치 시킵니다.
class A{
public static void main(String args[]){
StringBuffer sb=new StringBuffer("Hello");
sb.replace(1,3,"Java");
System.out.println(sb); // HJavalo 를 출력한다.
}
}
4) StringBuffer delete() method
StringBuffer class의 delete() 메소드는 주어진 beginIndex 에서 endIndex 까지 문자열을 삭제합니다.
class A{
public static void main(String args[]){
StringBuffer sb=new StringBuffer("Hello");
sb.delete(1,3);
System.out.println(sb); // Hlo 를 출력한다.
}
}
5) StringBuffer reverse() method
StringBuffer class의 reverse() 메소드는 현재 문자열을 반전시킵니다.
class A{
public static void main(String args[]){
StringBuffer sb=new StringBuffer("Hello");
sb.reverse();
System.out.println(sb); // olleH 를 출력한다.
}
}
6) StringBuffer capacity() method
StringBuffer class의 capacity() 메소드는 현재 buffer의 용량을 반환합니다. buffer의 용량 기본값는 16입니다.
만약 현재 용량으로부터 특성의 수가 증가한다면, (oldcapacity x 2)+2 에 의해 용량이 증가합니다.
예를 들어 당신의 현재 용량이 16이라면, (16 x 2)+2는 34가 될 것입니다.
class A{
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 다시말하면 (oldcapacity*2)+2
}
}
7) StringBuffer ensureCapacity() method
StringBuffer class의 ensureCapacity() 메소드는 현재 용량까지 주어진 용량은 최저상태로 보장합니다.
만약 현재 용량보다 더 크다면, (oldcapacity x 2)+2라는 수식에 의해 용량은 증가합니다.
예를 들어 당신의 현재 용량이 16이라면, (16x2)+2= 34가 될 것입니다.
class A{
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
}
}
으쌰으쌰 공부공부
영어원문내용출처 : http://www.javatpoint.com
번역,의역 및 작성 : 초코토끼
검수 : 번역토끼
오역 및 오타의 지적은 겸손히 받겠습니다.
'IT Story > about Java' 카테고리의 다른 글
Java toString() method (0) | 2015.10.12 |
---|---|
스트링과 스트링버퍼의 차이 [java, String and StringBuffer] (0) | 2015.10.08 |
Substring in Java [자바 부분 문자열] (0) | 2015.10.05 |
Java String compare [자바 문자열 비교] (6) | 2015.10.05 |
자바 문자열 ( Java string ) (0) | 2015.10.01 |