본문 바로가기
수업(국비지원)/Java

[Java] chap11: 기본 API(패키지 클래스) - StringBuffer

by byeolsub 2023. 4. 16.
  • StringBuffer 클래스
StringBuffer 클래스
   1. 동적문자열. 변경 가능한 문자열
   2. equals 메서드를 오버라이딩 안함. => 내용 비교 안됨.
      => 내용 비교를 위해서는 String 객체로 비교해야 함.
   3. String 클래스의 보조 역할   
   4. = 대입연산자로 객체 생성 불가
   5. StringBuilder 클래스와 같은 기능

 

📌

package chap11;

public class StringBufferEx1 {
	public static void main(String[] args) {
		StringBuffer s1 = new StringBuffer("abc");
		StringBuffer s2 = new StringBuffer("abc");
		if(s1 == s2) System.out.println("s1 == s2 : 같은 객체임");
		else System.out.println("s1 != s2 : 다른 객체임");
		if(s1.equals(s2)) System.out.println("s1.equals(s2) : 같은 내용임");
		else System.out.println("s1.equals(s2) : 다른 내용임");
		//내용 비교
    //toString() : 객체의 문자열에 관여하는 메서드
		if(s1.toString().equals(s2.toString()))
	 System.out.println("s1.toString().equals(s2.toString()) : 같은 내용임");
		else System.out.println("s1.equals(s2) : 다른 내용임");
		
	}
}

  • StringBuffer 클래스의 메서드
StringBuilder 클래스와 같은 메서드를 가진다.(기능도 동일)

 

📌

package chap11;

public class StringBufferEx2 {
	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer();
		//sb.append() :sb 객체에 값을 뒤쪽 추가 
		sb.append("abc").append(123).append('A').append(false);
		System.out.println(sb);
		//delete(2,4) :2번인덱스 부터 3번인덱스까지 문자 제거
		sb.delete(2, 4);
		System.out.println(sb); //ab23Afalse
		//4번 인덱스 글자 제거
		sb.deleteCharAt(4);
		System.out.println(sb); //ab23false
		//5번인덱스에 == 추가
		sb.insert(5, "==");
		System.out.println(sb); //ab23f==alse
		sb = new StringBuffer("ABCDEFG");
		//replace : 0번인덱스부터 2번인덱스까지 abc 치환
		sb.replace(0, 3, "abc");
		System.out.println(sb); //abcDEFG
		//역순 변경
		sb.reverse();
		System.out.println(sb);
	}
}