728x90
ch 9 - 19 ~ 20
StringBuffer 클래스의 메서드
ch9 - 19
StringBuffer의 생성자와 메서드 (1 / 4)
메서드 :
StringBuffer()
>>
16문자를 담을 수 있는 버퍼를 가진 StringBuffer 인스턴스를 생성.
예제 :
StringBuffer sb = new StringBuffer();
결과 :
sb = ""
메서드 :
StringBuffer(int length)
>>
지정된 개수의 문자를 담을 수 있는 버퍼를 가진 StringBuffer 인스턴스를 생성.
예제 :
StringBuffer sb = new StringBuffer(10);
결과 :
sb = ""
메서드 :
StringBuffer(String str)
>>
지정된 문자열 값 (str) 을 갖는 StringBuffer 인스턴스를 생성.
예제 :
StringBuffer sb = new StringBuffer("Hi");
결과 :
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 인스턴스가 저장 하고 있는 문자열의 뒤에 이어 붙힌다.
예제 :
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"
StringBuffer의 생성자와 메서드 (2 / 4)
메서드 :
int capacity()
>>
StringBuffer 인스턴스의 버퍼 ( char[] ) 크기를 알려준다.
length() 는 버퍼에 담긴 문자열의 길이를 알려준다.
예제 :
StringBuffer sb = new StringBuffer(100);
sb.append("abcd");
int bufferSize = sb.capacity();
int stringSize = sb.length();
결과 :
bufferSize = 100
stringSize = 4 (sb에 담긴 문자열이 "abcd" 이므로)
메서드 :
char charAt(int index)
>>
지정된 위치 (index) 에 있는 문자 1개를 반환.
예제 :
StringBuffer sb = new StringBuffer("abc");
char c = sb.charAt(2);
결과 :
c = 'c'
메서드 :
StringBuffer delete(int start, int end)
>>
시작 위치 부터 끝 위치 "사이" 에 있는 문자를 제거.
단, 끝 위치의 문자는 제외.
예제 :
StringBuffer sb = new StringBuffer("0123456");
StringBuffer sb2 = sb.delete(3, 6);
결과 :
sb = "0126" (345 제거)
sb2 = "0126" (345 제거)
메서드 :
StringBuffer deleteCharAt(int index)
>>
지정된 위치 (index) 의 문자를 제거.
예제 :
StringBuffer sb = new StringBuffer("0123456");
sb.deleteCharAt(3);
결과 :
sb = "012456"
StringBuffer의 생성자와 메서드 (3 / 4)
메서드 :
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)
>>
두 번째 매개변수로 받은 값을 문자열로 변환하여,
지정된 위치 (pos) (== position) 에 추가.
pos 는 0 부터 시작 한다.
예제 :
StringBuffer sb = new StringBuffer("0123456");
sb.insert(4,'.');
결과 :
sb = "0123.456"
메서드 :
int length()
>>
StringBuffer 인스턴스에 저장 되어 있는 문자열의 길이를 반환.
예제 :
StringBuffer sb = new StringBuffer("0123456");
int length = sb.length();
결과 :
length = 7
메서드 :
StringBuffer replace(int start, int end, String str)
>>
지정된 범위 (start ~ end) 의 문자들을,
주어진 문자열로 바꾼다.
end 위치의 문자는 범위에 포함 되지 않는다.
(start <= x < end)
예제 :
StringBuffer sb = new StringBuffer("0123456");
sb.replace(3, 6, "AB");
결과 :
sb = "012AB6" ("345" 가 "AB" 로 변경)
메서드 :
StringBuffer reverse()
>>
StringBuffer 인스턴스에 저장 되어 있는 문자열의 순서를 거꾸로 나열.
예제 :
StringBuffer sb = new StringBuffer("0123456");
sb.reverse();
결과 :
sb = "6543210"
StringBuffer의 생성자와 메서드 (4 / 4)
메서드 :
void setCharAt(int index, char ch)
>>
지정된 위치의 문자를 주어진 문자 (ch) 로 바꾼다.
예제 :
StringBuffer sb = new StringBuffer("0123456");
sb.setCharAt(5, 'o');
결과 :
sb = "01234o6"
메서드 :
void setLength(int newLength)
>>
지정된 길이로 문자열의 길이를 변경.
길이를 늘리는 경우에, 나머지 빈 공간을 null 로 채운다. ('\u0000')
예제 :
StringBuffer sb = new StringBuffer("0123456");
sb.setLength(5);
StringBuffer sb2 = new StringBuffer("0123456");
sb2.setLength(10);
String str = sb2.toString().trim();
결과 :
sb = "01234"
sb2 = "0123456 " // (길이가 7 이였지만, 10으로 늘리면서 늘어난 3칸을 null 로 채운 모습)
str = "0123456" // (trim() 메서드로 공백 잘라내기)
메서드 :
String toString()
>>
StringBuffer 인스턴스의 문자열을 String 으로 반환.
예제 :
StringBuffer sb = new StringBuffer("0123456");
String str = sb.toString();
결과 :
str = "0123456"
메서드 :
String substring(int start)
String substring(int start, int end)
>>
지정된 범위 내의 문자열을 String 으로 뽑아서 문자열로 반환. (잘라내기)
시작 위치 (start) 만 지정하면,
시작 위치 부터 문자열 끝까지 뽑아서 문자열로 반환. (잘라내기)
예제 :
StirngBuffer sb = new StringBuffer("0123456");
String str = sb.substring(3);
String str2 = sb.substring(3, 5);
결과 :
str = "3456"
str2 = "34"
[ 참고 ]
자바에서, 무언가 index를 가리켜서 활용하는 메서드가 있을 때,
end index로 지정되는 index는 포함 안되도록 되어 있다.
즉, 시작 범위는 포함 되고, 끝 범위는 포함 되지 않는다.
start <= x < end
ch9 - 20
StringBuffer의 생성자와 메서드 예제
class Ex9_12 {
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); // 0123456789.0 (sb2랑 sb3은 모두 참조변수 sb의 주소값을 가리킨다)
System.out.println("sb2 = " + sb2); // 0123456789.0 (sb2랑 sb3은 모두 참조변수 sb의 주소값을 가리킨다)
System.out.println("sb3 = " + sb3); // 0123456789.0 (sb2랑 sb3은 모두 참조변수 sb의 주소값을 가리킨다)
System.out.println("===== 줄바꿈 =====");
System.out.println("sb = " + sb.deleteCharAt(10));
System.out.println("sb = " + sb.delete(3, 6));
System.out.println("sb = " + sb.insert(3, "abc"));
System.out.println("sb = " + sb.replace(6, sb.length(), "END")); // 6 <= x < 11
// 어떤 인덱스에 있었던 문자열이 제거되면,
// 그 다음 인덱스에 있는 문자열들이,
// 비어진 인덱스의 자리로 자동으로 이동 하게 된다.
System.out.println("===== 줄바꿈 =====");
System.out.println("capacity = " + sb.capacity()); // 인스턴스의 총 길이 (크기)
System.out.println("length = " + sb.length()); // 인스턴스에 저장된 현재 문자열의 길이.
}
}
[ console ]
반응형
'Java의 정석 > java.lang 패키지 & 유용한 클래스' 카테고리의 다른 글
래퍼 클래스, Number 클래스 (0) | 2023.09.02 |
---|---|
StringBuilder, Math 클래스 (0) | 2023.09.02 |
StringBuffer 클래스 (문자열 저장 & 다루기) (0) | 2023.09.01 |
StringJoiner, 문자열과 기본형 변환 (0) | 2023.09.01 |
String 클래스, 문자열 비교, 빈 문자열 (0) | 2023.08.31 |