Just Do It

StringBuffer & StringBuilder

by 핫도구
반응형

StringBuffer는 가변적인 특징을 가짐

또한 인스턴스 생성시 크기 지정이 가능하다.

크기가 자동으로 늘어난다.

문자열처리속도가 높고 중간에 변경가능함. 

 

StringBuffer sb1 = new StringBuffer("abc");
StringBuffer sb2 = new StringBuffer("abc");
StringBuffer sb = new StringBuffer(10); // 기본용량은 16
		
System.out.println("sb1==sb2 => "+(sb1==sb2));// false
System.out.println("sb1 equals sb2 => "+(sb1.equals(sb2))); // false

sb1과 sb2가 String객체로 선언되어 있다면 sb1.equals(sb2)는 true지만 StrungBuffer에서는 객체를 참조하기 때문에 false이다.

 

String s1 = sb1.toString();
String s2 = sb2.toString();
System.out.println("s1==s2 => "+(s1==s2));// false
System.out.println("s1 equals s2 => "+(s1.equals(s2))); // true

이와 같은 결과가 나옴

 

또한 다양한 메서드들이 있음

append(), insert(), replace(), deleteCharAt(), indexOf(), length(), delete(), capacity() 등이 존재한다.

s1="우리나라";
s2="대한민국";
sb1.append(s1);
sb1.append(s2);
sb1.append(sb2);
System.out.println("** After append sb1 => "+sb1); // abc우리나라대한민국abc

StringBuffer sb3 = new StringBuffer("03");
sb3.append(100);
sb3.append(200).append(300).append(400.567);
System.out.println("** After append sb3 => "+sb3); // 03100200300400.567
System.out.println("** insert sb3 => "+sb3.insert(3, "abcd")); // 031abcd00200300400.567
System.out.println("** replace sb3 => "+sb3.replace(sb3.lastIndexOf("."),sb3.length(),"END")); // 031abcd00200300400END
System.out.println("** deleteCharAt sb3 => "+sb3.deleteCharAt(5));  // 031abd00200300400END
System.out.println("** delete sb3 => "+sb3.delete(0,3));  // abd00200300400END
System.out.println("** capacity sb3 => "+sb3.capacity()); // 38

append()는 뒤에 추가하는 메서드이다.

insert(index, 넣을 값) index위치에 넣을 값을 넣어주는 것이다.

replace(startIndex, lastIndex, String) StartIndex 부터 lastIndex 까지의 글자 대신 String을 넣어준다.

deleteCharAt(index) 는 index위치에 있는 글자를 없애준다.

delete(startIndex, lastIndex) 는 startIndex부터 lastIndex까지의 글자를 지운다.

capacity()는 용량을 byte단위로 측정해서 보여준다.

 

StringBuilder는 StringBuffer와는 비슷하지만 동기화를 지원하지 않아 멀티쓰레드 환경에서 적합하지 않지만 단일쓰레드에서의 성능은 StringBuffer보다 뛰어나다.

반응형

'JAVA > OLD' 카테고리의 다른 글

Set(HashSet, TreeSet, LinkedHashSet)  (0) 2024.07.29
List 인터페이스 (ArrayList & LinkedList)  (0) 2024.07.29
Generic  (0) 2024.07.27
String method  (0) 2024.07.27
String's Basic  (0) 2024.07.27

블로그의 정보

AquaMan

핫도구

활동하기