StringBuffer클래스 : 문자열을 동적으로 처리
생성자
StringBuffer() : 디폴트 생성자
StringBuffer(int size) : size를 기본크기로 지정
StringBuffer(String str) : str 초기문자열 지정
메서드
StringBuffer append(booleab b) : 현재 문자열 끝에 b를 추가
StringBuffer append(char ch) : 현재문자열 끝에 ch를 추가
StringBuffer append(int i) : 현재 문자열 끝에 i 를 추가
StringBuffer append(long l) : 현재문자열 끝에 l 를 추가
StringBuffer append(float f) :현재문자열 끝에 f 를 추가
StringBuffer append(double d) :현재문자열 끝에 d 를 추가
StringBuffer append(String str) :현재문자열 끝에 str문자열을 추가
StringBuffer append(Object obj) : 현재문자열 끝에 obj 를 추가
int capacity() : 현재 문자열의 버퍼크기를 반환
char charAt(int index) : index 위치에 해당 문자열을 반환
StringBuffer insert(int i ,boolean b) : i번 인덱스 앞에 b를 추가
StringBuffer insert(int i,char ch); i번 인덱스 앞에 ch 를 추가
StringBuffer insert(int i, int j) : i번 인덱스 앞에 j를 추가
StringBuffer insert(int i, long l) :i번 인덱스 앞에 l 를 추가
StringBuffer insert(int i, String str) :i번 인덱스 앞에 str 문자열을 추가
StringBuffer insert(int i,Object obj) : i번 인덱스 앞에 obj를 추가
int length() : 문자의 개수를 반환
StringBuffer reverse() : 문자열을 역순으로 변환해 준다
void setCharAt(int i, char ch) : i번째 문자를 ch로 바꾼다
void setLength(int len) : 버퍼크기를 len 크기로 재설정
class StringBufferTest
{
public static void main( String [] args )
{
StringBuffer sb1 = new StringBuffer("Java");
StringBuffer sb2 = new StringBuffer(10); // capacity를 10 으로
StringBuffer sb3 = new StringBuffer();// default 생성자
// capacity는 기본이 16으로 잡힌다.
System.out.println(sb1.length());
System.out.println(sb1.capacity());
System.out.println();
System.out.println(sb2.length());
System.out.println(sb2.capacity());
System.out.println();
System.out.println(sb3.length());
System.out.println(sb3.capacity());
}// end main
}
class StringBufferTest_2
{
public static void main( String [] args )
{
StringBuffer sb = new StringBuffer();
sb.append("Hello ");
sb.append("Good ");
System.out.println("스트링 버퍼 클래스 값 :"+ sb.toString());
sb.reverse();
System.out.println(sb.toString());
sb.reverse();
sb.delete(0,5);
System.out.println(sb.toString());
System.out.println(sb.length());
System.out.println(sb.capacity());
sb.append("very ");
sb.append("nice ");
sb.append("Oh my god ");
sb.append("see you tomorrow");
System.out.println(sb.capacity());
}// end main
}
class StringBufferTest_3
{
public static void main( String [] args )
{
StringBuffer sb = new StringBuffer("java");
sb.append(" program");
for(int i = 0 ; i<sb.length(); i++)
{
System.out.print("\n"+sb.charAt(i));
}
sb.insert(4,"★"); //입력위치에 값이 있으면 뒤로 밀어내고 입력.
System.out.println("\n"+sb);
System.out.println(sb.length());
sb.setLength(5); //문자열 길이 다시 설정
System.out.println(sb.length());
System.out.println(sb.toString());
}// end main
}
/*
String 과 StringBuffer 연산 시간 차이 구하는 예제
*/
class StringBufferTest_4
{
public static void main( String [] args )
{
long start, end;
String str1 = new String("1 ~ 5000까지 합을 연산하기 ");
start = System.currentTimeMillis(); // 시작시간 구하기
for(int i = 1; i<=5000 ; i++)
{
str1+=i;
str1+="+";
}
end = System.currentTimeMillis(); //연산 종료 시간
System.out.println("연산시간: " + (end - start));
StringBuffer sb = new StringBuffer("1~5000까지 연산 시간");
start = System.currentTimeMillis();
for(int i = 1; i<=5000; i++)
{
sb.append(i);
sb.append("+");
}
end = System.currentTimeMillis(); //연산 종료 시간
System.out.println("StringBuffer 연산시간: " + (end - start));
}// end main
}