본문 바로가기

자바/클래스

StringBuffer 클래스

예제1)


public class Test7 {

public static void main(String[] args){

StringBuffer sb1=new StringBuffer();

StringBuffer sb2=new StringBuffer();

System.out.println(sb1.capacity()); //초기버퍼크기 : 16

sb1.append("seoul");

sb2.append("seoul");

//주소비교

System.out.println(sb1==sb2); //false

//StringBuffer에는 equals()메소드가 없으며 최상위 클래스인 Object의 equals()메소이드임

//==> 내용을 비교하는 것이 아니라 주소비교

System.out.println(sb1.equals(sb2)); //false

// 내용비교 : String으로 변환하여 비교해야함

System.out.println(sb1.toString().equals(sb2.toString()));

sb1.append("korea");

sb1.append("자바");

sb1.append("하이브리드웹앱");

sb1.append("안드로이드");

sb1.append("프레임워크");

sb1.append("AJAX");

sb1.append("XML");

System.out.println(sb1.toString());

System.out.println(sb1);

System.out.println(sb1.capacity());  //capacity => 버퍼의 크기를 나타낸다.

//0번째에  대한민국 추가, 결과적으로 대한민국이 제일 앞쪽에 온다.

sb1.insert(0, "대한민국");

System.out.println(sb1);

//몇번째 위치인지 표시 (k의 위치)

System.out.println(sb1.indexOf("korea")); // 9

//'korea'뒤에 '사람'추가

sb1.insert(sb1.indexOf("korea")+"korea".length(),"사람");

System.out.println(sb1);

/*아래 명령은 위와 동일

sb1.insert(14,"사람");

System.out.println(sb1);

*/ 

//안드로이드제거

sb1.delete(sb1.indexOf("안드로이드"), sb1.indexOf("안드로이드")+"안드로이드".length());

System.out.println(sb1);

// korea 이후의 문자열 제거

sb1.delete(sb1.indexOf("korea")+"korea".length(),sb1.length());

System.out.println(sb1);

System.out.println(sb1.length()); //14

System.out.println(sb1.capacity()); // 70

//버퍼의 크기를 문자열의 길이로 맞춤(쓸데없는 버퍼크기를 줄이기위한 명령어)

sb1.trimToSize();

System.out.println(sb1.capacity()); //14

}

}


예제1 결과)


16

false

false

true

seoulkorea자바하이브리드웹앱안드로이드프레임워크AJAXXML

seoulkorea자바하이브리드웹앱안드로이드프레임워크AJAXXML

70

대한민국seoulkorea자바하이브리드웹앱안드로이드프레임워크AJAXXML

9

대한민국seoulkorea사람자바하이브리드웹앱안드로이드프레임워크AJAXXML

대한민국seoulkorea사람자바하이브리드웹앱프레임워크AJAXXML

대한민국seoulkorea

14

70

14


================================================================================================================

예제2)

public class Test8 {
public static void main(String[] args) throws Exception {
// char ch='A'; // 2byte
String str="KOREA";  // 5byte  => 문자(char)는 2byte씩 먹지만 문자열(string)에서 영어는 1byte씩 먹는다.
String str1="대한민국임"; // 10byte, euc-kr(ms949) =>ms에서 채택한 한글코드, 1글자당 2byte.
byte[] b=str.getBytes(); // 문자를 바이트 코드로 바꿈.
for(byte bb:b)
System.out.println(bb); // 5개 아스키코드 출력
byte[] b1=str1.getBytes();
for(byte bb:b1)
System.out.println(bb); // 10개 숫자 출력
byte[] b2=str1.getBytes("utf-8"); // uft-8: 한글 1자 -> 3byte
System.out.println("===============");
for(byte bb:b2)
System.out.println(bb);
// 바이트배열 ->  문자열
String mm=new String(b1);
String mm2=new String(b2, "utf-8"); //utf-8이 없다면 한글깨져서보임
System.out.println(mm);
System.out.println(mm2);
}
}

예제2 결과)

75
79
82
69
65
-76
-21
-57
-47
-71
-50
-79
-71
-64
-45
===============
-21
-116
-128
-19
-107
-100
-21
-81
-68
-22
-75
-83
-20
-98
-124
대한민국임
대한민국임




'자바 > 클래스' 카테고리의 다른 글

Scanner 클래스  (0) 2013.05.19
SimpleDateFormat  (0) 2013.05.19
Wrapper 클래스  (0) 2013.05.19
BigDecimal와 BigInteger  (0) 2013.05.19
string 클래스  (0) 2013.05.15