쌓고 쌓다
[JAVA] StringBuffer 클래스 본문
StringBuffer
- 가변 스트링을 다루는 클래스이다.
- String 클래스와 달리 문자열 변경이 가능하다.
- ( String 객체의 변경은 실제로 변경되는 것이 아닌 새로 String객체를 만들어 반환함 ) -> garbage가 많이 발생
- 가변 크기의 버퍼를 가지고 있어 문자열 수정 가능
- 문자열의 수정이 많을때 적합
StringBuffer 예제 코드
public class Hongong {
public static void main(String args[]){
StringBuffer sb = new StringBuffer("This");
sb.append(" is pencil."); // 문자열 뒤에 " is pencil." 추가
System.out.println(sb); // sb.toString()으로 자동 변환
sb.insert(7, " my"); // 인덱스 7에 "my" 삽입
System.out.println(sb);
sb.replace(8,10,"your"); // 범위 : [start,end)를 "your"로 대체
System.out.println(sb);
}
}
실행 결과
String과 StringBuffer 비교
결과부터 미리 말하자면 String 객체에 문자열을 덧붙였더니 새로운 객체가 만들어져 만들어진것이고
StringBuffer 객체에 append로 문자열을 붙였더니 원래 객체에 덧붙여진 문자열이다.
예제 코드
public class Hongong {
public static void main(String args[]){
String s = new String("This");
StringBuffer sb = new StringBuffer("This");
System.out.println(System.identityHashCode(s));
System.out.println(System.identityHashCode(sb));
// 각각 문자열 뒤에 "is pencil." 추가
s=s.concat(" is pencil.");
sb.append(" is pencil.");
System.out.println("is pencil 추가 후...");
System.out.println(System.identityHashCode(s));
System.out.println(System.identityHashCode(sb));
}
}
실행 결과
-> StringBuffer의 값은 그대로인걸 확인할 수 있다.
주요 메소드
메소드 | 설명 |
StringBuffer append(String str) | str 스트링을 덧붙인다. |
StringBuffer append(StringBuffer sb) | sb 스트링 버퍼를 덧붙인다. |
int capacity() | 스트링 버퍼의 현재 크기 리턴 |
StringBuffer delete(int start, int end) | start 위치에서 end 위치 앞까지 부분 문자열 삭제 |
StringBuffer insert(int offset, String str) | str 스트링을 offset 위치에 삽입 |
StringBuffer replace(int start, int end, String str) | start부터end가 지정하는 문자 앞의 서브 스트링을 str로 대치 |
StringBuffer reverse() | 스트링 버퍼 내의 문자들을 반대 순서로 변경 |
void setLength(int newLength) | 길이를 newLength로 재지정(현재 길이보다 크면 널문자로, 작은 경우는 기존 문자열이 잘림) |
주요 메소드 예제 코드
public class Hongong {
public static void main(String args[]){
StringBuffer sb = new StringBuffer("This");
sb.append(" is pencil.");
System.out.println(sb);
sb.insert(7, " my");
System.out.println(sb);
sb.replace(8, 10, "your");
System.out.println(sb);
sb.delete(8, 13);
System.out.println(sb);
sb.setLength(4);
System.out.println(sb);
}
}
실행 결과
'프로그래밍 > java' 카테고리의 다른 글
[JAVA] Math, Calendar 클래스 (0) | 2022.05.22 |
---|---|
[JAVA] StringToKenizer 클래스 (0) | 2022.05.22 |
[JAVA] String 클래스 [ hashCode()와 identityHashCode() ] (0) | 2022.05.21 |
[JAVA] Wrapper 클래스 (0) | 2022.05.21 |
[JAVA] Object 클래스 (0) | 2022.05.21 |
Comments