StringBuffer 클래스

-String 처럼 문자열 배열(char[])을 내부적으로 가지고 있다.

-String과 달리 내용을 변경 할 수 있다. 변경가능

-문자열을 가지고 조작을 많일 할 경우 추가,변경 등 스프링버퍼가 유리

-StringBuffer(”abc”) : character 배열이 만들어진다.

-sb.append(”123”) : 새로운 문자열이 추가된다. 배열에 내용이 추가된다.

-배열은 길이 변경불가. 공간이 부족하면 새로운 배열 생성해야한다

-처음에 길이가 5인 배열을 만들어서 1~5저장후 6을 저장하고 싶다면 ?

-배열의 길이가 불가능

1. 새로운배열 만들기

2. 내용복사

3. 참조변경

-StringBuffer는 저장할 문자열의 길이를 고려해서 적절한 크기로 생성해야한다. (공간이 부족하지않도록..)

-StringBufferString과는 달리 내용 변경이 가능하다.

StringBuffer sb = new StringBuffer(”abc”);

-append() 끝에 문자열 추가

-delete()삭제

-insert()삽입

-반환타입이 StringBuffer이다.

-sb.append(”123”).append(”zz”)가능한 이유가 반환타입이 StringBuffer때문

-StringBufferequals()가 오버라이딩 되어 있지않다. (주소비교) this==obj

-String은 내용비교

-StringBufferString으로 변환 후에 equals()로 비교해야 한다.

String s = sb.toString(); // sbString으로 변환

String s2 = sb2.toString();

System.out.println(s.equals(s2)); //true

 

 

package problemSolving;

public class Test1 {

	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer("01");
		StringBuffer sb2 = sb.append(23);
		sb.append('4').append(56);
		
		StringBuffer sb3 = sb.append(78);
		sb3.append(9.0);
		
		System.out.println("sb="+sb);//sb=0123456789.0
		System.out.println("sb2="+sb2);
		System.out.println("sb3="+sb3);
		
		
		System.out.println("sb="+sb.deleteCharAt(10));//sb=01234567890
		System.out.println("sb="+sb.delete(3,6));//sb=01267890
		System.out.println("sb="+sb.insert(3, "abc"));//sb=012abc67890
		System.out.println("sb="+sb.replace(6,sb.length(),"END"));//sb3=012abcEND

	}

}

'2021 Newlecture > JAVA' 카테고리의 다른 글

클래스변수  (0) 2021.09.18
Wrapper class  (0) 2021.08.22
String , StringBuffer, StringBuilder 차이점  (0) 2021.08.20
자바 컬렉션과 제네릭 강의  (0) 2021.04.25
자바 총 정리  (1) 2021.04.13
Inner class / Anonymous class  (0) 2021.04.12
인터페이스 구현  (0) 2021.04.12
(추가정리) 추상클래스 와 인터페이스  (0) 2021.04.11

+ Recent posts