일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Kadane's Algorithm
- array
- heroku
- JAVA11
- 자바 스레드 실행 순서 제어
- scanner
- R
- 수학
- 카데인 알고리즘
- input
- SpringBoot 2
- 자바입력
- 사칙연산
- Easy
- 자바 thread 실행 순서 제어
- hash table
- Today
- Total
DeFacto-Standard IT
[Java] StringBuffer Class 본문
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 |