StringBuffer 클래스
-String 처럼 문자열 배열(char[])을 내부적으로 가지고 있다.
-String과 달리 내용을 변경 할 수 있다. 변경가능
-문자열을 가지고 조작을 많일 할 경우 추가,변경 등 스프링버퍼가 유리
-StringBuffer(”abc”) : character 배열이 만들어진다.
-sb.append(”123”) : 새로운 문자열이 추가된다. 배열에 내용이 추가된다.
-배열은 길이 변경불가. 공간이 부족하면 새로운 배열 생성해야한다
-처음에 길이가 5인 배열을 만들어서 1~5저장후 6을 저장하고 싶다면 ?
-배열의 길이가 불가능
1. 새로운배열 만들기
2. 내용복사
3. 참조변경
-StringBuffer는 저장할 문자열의 길이를 고려해서 적절한 크기로 생성해야한다. (공간이 부족하지않도록..)
-StringBuffer는 String과는 달리 내용 변경이 가능하다.
StringBuffer sb = new StringBuffer(”abc”);
-append() 끝에 문자열 추가
-delete()삭제
-insert()삽입
-반환타입이 StringBuffer이다.
-sb.append(”123”).append(”zz”)가능한 이유가 반환타입이 StringBuffer때문
-StringBuffer는 equals()가 오버라이딩 되어 있지않다. (주소비교) this==obj
-String은 내용비교
-StringBuffer를 String으로 변환 후에 equals()로 비교해야 한다.
String s = sb.toString(); // sb를 String으로 변환
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 |