java.lang.StringBuffer
StringBuffer 클래스는 String 클래스에서 제공하지 않는 추가·삭제 기능을 제공한다. 문자열을 폭넓게 사용할 필요가 있을 때 StringBuffer 클래스를 이용한다. buffer는 문자열을 기억할 메모리, 즉 문자형 배열(char[])을 말한다. 문자열을 추가하거나 삭제하면 buffer의 크기가 변한다.
☞ StringBuffer 클래스의 유용한 생성자
public StringBuffer() - buffer의 초기 크기(initial capacity)를 16으로 정한다.
public StringBuffer(int length) - buffer의 초기 크기를 length로 한다.
public StringBuffer(String str) - buffer의 초기 크기는 'str.length()+16'이고, buffer에 str이 기억된다.
아래 StringBuffer 클래스의 메소드를 살펴보면 synchronized라는 것이 붙어 있다. 다중 스레드를 사용했을 때 문자열이 깨지는 것을 막기 위해서 인데, Thread를 배울 때 자세히 살펴보도록 하자, synchronized가 있든 없든 기능상의 차이는 없다.
☞ StringBuffer 클래스의 유용한 메소드 1
public synchronized StringBuffer append(String str)
append(StringBuffer sb), append(char str[]), append(boolean b),
append(char c), append(int I), append(long l), append(float f),append(double d)
this 문자열 끝에 자료(인수)를 추가(append)하고 this를 반환한다.
public synchronized StringBuffer delete(int start, int end)
this 문자열에서 start에서 end앞까지 문자들을 지우고(delete) this를 반환한다.
public synchronized StringBuffer deleteCharAt(int index)
index 위치에 있는 문자를 지우고 this를 반환한다.
public synchronized StringBuffer insert(int offset, String str)
insert(int offset, char str[]), insert(int offset, boolean b),
insert(int offset, char c), insert(int offset, int I), insert(int offset, long l),
insert(int offset, float f), insert(int offset, double d)
offset 위치에 자료(인수)를 삽입(insert)한다.
##String6.java##
public class String6{
public static void main(String[] args){
StringBuffer sb=new StringBuffer();
sb.append("ABC");
sb.append(123);
sb.append(true);
System.out.println(sb); // ABC123true
sb.delete(1, 3);
System.out.println(sb); // A123true
sb.deleteCharAt(4);
System.out.println(sb); // A123rue
sb.insert(5, "@@");
System.out.println(sb); // A123r@@ue
sb.insert(6, 7.89);
System.out.println(sb); // A123r@7.89@ue
}
}
☞ StringBuffer 클래스의 유용한 메소드 2
public synchronized StringBuffer replace(int start, int end, String str)
문자열에서 start와 (end-1)사이의 문자들을 str로 바꾼다.
public synchronized StringBuffer reverse()
문자열을 거꾸로 만든다.
예) "abc" -> "cba"
charAt(int index), length(), substring(int start), substring(int start, int end)
String 클래스의 메소드와 기능이 같다.
##String7.java##
public class String7{
public static void main(String[] args){
StringBuffer sb=new StringBuffer("ABCDEFG");
sb.replace(0, 3,"abc");
System.out.println(sb); // abcDEFG
sb.reverse();
System.out.println(sb); // GFEDcba
}
}
'My work space > Java' 카테고리의 다른 글
자바를자바답게하는클래스[Wrapper Class] (0) | 2008.08.14 |
---|---|
자바를자바답게하는클래스[StringTokenizer클래스] (0) | 2008.08.14 |
[아시나요?]equals 와 == (0) | 2008.08.14 |
자바를자바답게하는클래스[String클래스] (0) | 2008.08.14 |
JAVA Garbage Collection에 대한 소개와 메모리 Tuning (0) | 2008.08.14 |