Notice
Recent Posts
Recent Comments
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

DeFacto-Standard IT

[Java] StringBuffer Class 본문

Java/Useful Classes

[Java] StringBuffer Class

defacto standard 2017. 10. 2. 16:44

StringBuffer의 버퍼 크기

StringBuffer는 내부적으로 버퍼를 가지고 있기 때문에, 문자열의 수정이 가능하다.

이 버퍼는 StringBuffer 인스턴스를 생성할 때 그 크기를 지정할 수 있다.


만약, 버퍼의 크기를 넘는 문자열을 저장하려면 버퍼의 크기를 늘리는 추가작업이 필요하다.


StringBuffer 인스턴스를 생성할 때, 기본적으로 16개의 문자를 저장할 수 있는 크기의 버퍼를 생성한다.

만약 생성자의 인자로서 정수를 준다면 해당 인자의 크기 만큼의 버퍼를 생성한다.

생성자의 인자로서 문자열을 준다면 해당 문자열의 길이보다 16만큼 더 큰 버퍼를 생성한다.



StringBuffer 인스턴스의 비교

String 클래스는 equals()를 오버라이딩해서 문자열 값의 내용을 비교한다.

하지만 StringBuffer 클래스는 equals()를 오버라이딩하지 않아서, 이를 사용해도 '=='연산과 동일한 결과를 얻는다.


만약 String클래스의 equals와 같이 사용하고 싶다면, StringBuffer클래스 내부에서 버퍼.toString()으로 반환받은 String을 사용하여 equals()를 사용하면 된다.


메서드

예제

결과

StringBuffer()

StringBuffer(int size)

StringBuffer sb1 = new StringBuffer();

StringBuffer sb2 = new StringBuffer(10);

StringBuffer sb3 = new StringBuffer("Hi");

sb1 = ""

sb2 = ""

sb3 = "Hi"

16문자를 담을 수 있는 버퍼를 가진

StringBuffer 인스턴스를 생성.

정수를 인자로 넘기는 경우 : size만큼의 버퍼를 가진 StringBuffer 인스턴스를 생성.

문자열을 인자로 넘기는 경우 : 해당 문자열 str을 갖는 StringBuffer 인스턴스를 생성.

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);

sb = "abctrued10.0ABC123"

sb2 = "abctrued10.0ABC123"

sb3 = "abctrued10.0ABC123"

매개변수로 입력된 값을 문자열로 변환하여 현재 문자열의 뒤에 덧붙임

int capacity()

StringBuffer sb = new StringBuffer(100);

sb.append("abcd");

int bufferSize = sb.capacity();

int stringSize = sb.length();

bufferSize = 100

stringSize = 4

StringBuffer인스턴스의 버퍼에 대한 전체 크기를 리턴한다.

length()는 현재 저장한 문자열의 길이를 리턴한다.

char charAt(int index)

StringBuffer sb = new StringBuffer("abc");

char c = sb.charAt(2);

c='c'

index번 위치에 해당하는 문자를 반환.

인덱스는 0부터 시작한다.

StringBuffer delete(int start, int end)

StringBuffer sb =

new StringBuffer("0123456);

StringBuffer sb2 = sb.delete(3, 6);

sb = "0126"

sb2 = "0126"

start이상 end미만 범위의 문자를 제거.

끝 위치의 문자는 제외.

StringBuffer deleteCharAt(int index)

StringBuffer sb =

new StringBuffer("0123456");

sb.deleteCharAt(3);

sb = "012456"

index위치의 문자를 제거

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, '.');

sb = "0123.456"

두 번째 매개변수의 값을 문자열로 변환하여 pos위치에 추가. pos는 0부터 시작.

int length()

StringBuffer sb = new StringBuffer("0123456");

int length = sb.length();

length = 7

현재 저장된 문자열의 길이를 리턴.

StringBuffer replace(int start, int end, String str)

StringBuffer sb = new StringBuffer("0123456");

sb.replace(3, 6, "AB");

sb = "012AB6"

("345"를 "AB"로 변경)

start이상, end 미만 범위의 문자를 3번째 인자의 문자열로 변경. 마지막 문자는 해당되지 않음.

StringBuffer reverse()

StringBuffer sb = new StringBuffer("0123456");

sb.reverse();

sb = "6543210"

저장된 문자열의 순서를 거꾸로 나열.

void setCharAt(int index, char ch)

Stringbuffer sb = new StringBuffer("0123456");

sb.setCharAt(5, 'o');

sb = "01234o6"

지정된 위치의 문자를 문자 ch로 변경

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();

sb="1234"

sb2="0123456   "

sb3 ="0123456"

newLength만큼의 고정크기로 길이를 변경.

크기를 늘리는 경우 빈 공간을 널문자'\u0000'로 세팅.

String toString()

StringBuffer sb = new StringBuffer("0123456");

String str = sb.toString();

str = "0123456"

StringBuffer 인스턴스의 문자열을 String으로 변환.

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);

str = "3456"

str2 = "34"

지정 범위의 문자열을 String타입으로 반환.

시작위치만 지정할 경우 시작부터 끝가지 반환.


'Java > Useful Classes' 카테고리의 다른 글

[Java] Wrapper Class  (0) 2017.10.02
[Java] Math Class  (0) 2017.10.02
[Java] String Class  (0) 2017.10.02
[Java] Object Class  (0) 2017.10.02
Comments