본문 바로가기
JAVA BASE/lang & util

05. [자바] StringBuffer, StringBuilder 생성자와 메서드

by staticClass 2020. 12. 25.

StringBuffer, StringBuilder의 개념이 궁금하다면 하단의 링크를 클릭하시라.

 

04. [자바] StringBuffer 와 StringBuilder

결론 결론부터 말하면 특별한 경우가 아니라면 StringBuilder 를 사용하자 StringBuffer 와 StringBuilder 는 생성자부터 메소드까지 정말 또오옥같다 🤷‍♂️ 아래의 본문에는 StringBuffer 클래스에 대한

staticclass.tistory.com


 

 

아래의 표를 보기전에..

StringBuffer에 대한 설명이지만 StringBuilder를 쓰는게 더 좋겠다.
StringBufferStringBuilder는 생성자부터 메소드까지 정말 또오옥같다 🤷‍♂️
아래의 본문에는 StringBuffer클래스에 대한 설명이 전부이지만
StringBuilder로 클래스만 바꾸면 메소드,기능,리턴 다 똑같다.😊

StringBuffer sb = new StringBuffer();
sb.append("abc");
  ↓  똑같다 ↓
StringBuilder sb = new StringBuilder();
sb.append("abc");

StringBuilder를 써야하는 이유는?

StirngBuffer는 멀티쓰레드에 안전하도록 동기화되어 있는데 동기화가 StringBuffer의 성능을
떨어뜨리기 때문
이다, 멀티쓰레드로 작성된 프로그램이 아닌 경우 StringBuffer의 동기화
불필요하게 성능만 떨어뜨리게 된다.
그래서 동기화만 빼고 똑같이 만들어둔게 StringBuilder이다.😎

 

 

StringBuffer, StringBuilder 생성자와 메서드

메서드 / 설명 예 제 / 결 과
StringBuffer() StringBuffer sb = new StringBuffer();
16문자를 담을 수 있는 버퍼를 가진 StringBuffer 
인스턴스를 생성시킨다.
sb = ""
StringBuffer(int length) StringBuffer sb = new StringBuffer(10);
지정된 개수의 문자를 담을 수 있는 버퍼를 가진
StringBuffer인스턴스를 생성한다.
sb = ""
StringBuffer(String str) StringBuffer sb = new StringBuffer("Hi");
지정된 문자열 값(str)을 갖는 StringBuffer 
인스턴스를 생성한다.
sb = "Hi"
StringBuffer append(boolean b)
StringBuffer append(char c)
StringBuffer append(char[] str)
StringBuffer append(double d)
StringBuffer append(float f)
StringBuffer append(int i)
StringBuffer append(long l)
StringBuffer append(Object obj)
StringBuffer append(String str)

StringBuffer sb = new StringBuffer("abc");
StringBuffer sb2 = sb.append(true);
sb.append('d').append(10.0f);

StringBuffer sb3 = sb.append("ABC")
                            .append(123)
매개변수로 입력된 값을 문자열로 변환하여
StringBuffer인스턴스가 저장하고 있는 문자열의 뒤에
덧붙인다.
sb = "abctrued10.0ABC123"
sb2 = "abctrued10.0ABC123"
sb3 = "abctrued10.0ABC123"
int capacity()
StringBuffer sb = new StringBuffer(100);
sb.append("abcd");
int bufferSize = sb.capacity();
StringBuffer인스턴스의 버퍼크기를 알려준다.
bufferSize = 100
int length() StringBuffer sb = new StringBuffer(100);
sb.append("abcd");
int stringSize = sb.length();
length()는 버퍼에 담긴 문자열의 길이를 알려준다. stringSize = 4 (sb에 담긴 문자열이 "abcd"이므로)
char charAt(int index) StringBuffer sb = new StringBuffer("abc");
char c = sb.charAt(2);
지정된 위치(index)에 있는 문자를 반환한다. c = 'c'
StringBuffer delete(int start, int end) StringBuffer sb = new StringBuffer("0123456");
StringBuffer sb2 = sb.delete(3, 6);
시작위치(start)부터 끝 위치(end) 사이에 있는 문자를
제거한다.
시작위치의 문자는 범위에 포함되지만 끝 위치의 문자는
포함되지
않는다. (begin ≦ x < end)
sb = "0126"
StringBuffer deleteCharAt(int index) StringBuffer sb = new StringBuffer("0123456");
sb.deleteCharAt(3);
지정된 위치(index)의 문자를 제거한다. sb = "012456"
StringBuffer Insert(int pos, boolean b)
StringBuffer Insert(int pos, char c)
StringBuffer Insert(int pos, char[] str)
StringBuffer Insert(int pos, double d)
StringBuffer Insert(int pos, float f)
StringBuffer Insert(int pos, int i)
StringBuffer Insert(int pos, long l)
StringBuffer Insert(int pos, Object obj)
StringBuffer Insert(int pos, String str)
StringBuffer sb = new StringBuffer("0123456");
sb.insert(4, '.');
두 번째 매개변수로 받은 값을 문자열로 변환하여
지정된 위치(pos)에 추가한다. (pos는 0부터 시작)
sb = "0123.456"
StringBuffer replace(int start, int end, String str) StringBuffer sb = newStringBuffer("0123456");
sb.replace(3, 6, "AB");
지정된 범위(start~end)의 문자들을 주어진 문자열로
바꾼다. end위치의 문자는 범위에 포함 되지 않음
(begin ≦ x < end) 
sb = "012AB6"    //"345"를 "AB"로 바꿈
StringBuffer reverse() StringBuffer sb = new StringBuffer("0123456");
sb.reverse();
StringBuffer인스턴스에 저장되어 있는 문자열의 순서를
거꾸로 나열한다.
sb = "6543210"
void setCharAt(int index, char ch) StringBuffer sb = new StringBuffer("0123456");
sb.setCharAt(5, o);
지정된 위치의 문자를 주어진문자(ch)로 바꾼다. sb = "01234o6"
void setLength(int newLength) StringBuffer sb = new StringBuffer("0123456");
sb.setLength(5);
StringBuffer sb2 = new StringBuffer("0123456");
sb2.setLength(10);
String str = sb2.toString().trim();
지정된 길이로 문자열의 길이를 변경한다.
길이를 늘리는 경우에 나머지 빈 공간을
null문자 '\u000'로 채운다.
sb = "01234"
sb2 = "0123456   "
str = "0123456"
String toString() StringBuffer sb = new StringBuffer("0123456");
String str = sb.toString();
StringBuffer인스턴스의 문자열을 String으로 반환 str = "0123456"
String Substring(int start)
String subString(int start, int end)
StringBuffer sb = new StringBuffer("0123456");
String str = sb.subString(3);
String str2 = sb.subString(3, 5);
지정된 범위 내의 문자열을 String으로 뽑아서 반환한다.
시작위치(start)만 지정하면 시작위치부터 문자열 끝까지
뽑아서 반환한다.
str = "3456"
str2 = "34"

 

댓글