반응형
01. StringBuffer 클래스의 개념
- 문자열을 저장하기 위한 클래스
<String 객체>
- 저장된 문자열을 메소드로 직접 처리하지 않고 문자열 자체를 처리하는메소드 제공
<StringBuffer 객체>
- 저장된 문자열을 직접 처리하는 메소드 제공
- 다중스레드에 안전함
- 클래스보다 StringBuffer 클래스의 메소드가 문자열의 처리 속도가 우수
<StringBuilder 객체>
- StringBuffer객체와 가진 메소드는 똑같음
- 다중스레드에 안전하지 않음 (다중스레드의 문제점)
- 대신 속도는 빠름
02. StringBuffer객체 생성 방법
1. new 연산자로 생성자를 호출해 StringBuffer 객체 생성하기
StringBuffer sb=new StringBuffer("ABC");
2. " " 기호를 사용해 객체 생성 불가능
//StringBuffer sb = "ABC"; //불가능
3. StringBuffer객체에 저장된 문자열을 반환받아 String 객체로 생성하여 참조변수에 저장하기
- 출력용보다 StringBuffer객체를 String객체로 바꿔서 저장하는 용으로 많이 사용됨
String str = sb.toString(); //toString()생략불가능
System.out.println("str = " + str);
//str = ABC
03. StringBuffer객체의 메소드
- String이 가진 메소드와 거의 동일
- StringBuffer만이 가진 메소드만 보자!
StringBuffer.toString() - 문자열반환
- StringBuffer 객체에 저장된 문자열을 반환하는 메소드
- 참조변수를 출력할 경우 자동으로 toString() 메소드 호출 - 메소드 호출 생략 가능
StringBuffer sb=new StringBuffer("ABC");
System.out.println("sb.toString() = "+sb.toString());
//ABC
System.out.println("sb = "+sb);
//ABC
StringBuffer.append(Object o) - 삽입
- StringBuffer 객체에 저장된 문자열에 매개변수에 저장된 값을 추가하는 메소드
- String 객체에 저장된 문자열에 += 연산자를 사용한 효과와 동일
sb.append("DEF"); // += 사용 시 보다 훨씬 가독성이 좋음
System.out.println("sb = "+sb);
//ABCDEF
StringBuffer.insert(int offset, Object o) - 삽입
- StringBuffer 객체에 저장된 문자열에 매개변수에 저장된 문자열을 원하는 위치에 삽입하는 메소드
sb.insert(4, "X");
System.out.println("sb = "+sb);
//ABCDXEF
StringBuffer.deleteCharAt(int index) - 제거
- StringBuffer 객체에 저장된 문자열에서 매개변수에 저장된 위치의 문자를 하나를 제거하는 메소드
sb.deleteCharAt(2);
System.out.println("sb = "+sb);
//ABDXEF
StringBuffer.delete(int beginIndex, int endIndex-1) - 제거
- StringBuffer 객체에 저장된 문자열에서 매개변수에 저장된 시작위치부터 종료위치의 문자열을 제거하는 메소드
sb.delete(4, 6);
System.out.println("sb = "+sb);//ABDX
StringBuffer.reverse() - 역순나열
- StringBuffer 객체에 저장된 문자열을 역순으로 나열되도록 다시 저장하는 메소드
sb.reverse();
System.out.println("sb = "+sb);//XDBA
반응형
'java > java.lang' 카테고리의 다른 글
[java/lang] 7. Thread 클래스 (1) | 2024.06.16 |
---|---|
[java/lang] 6. Exception 클래스 (0) | 2024.06.16 |
[java/lang] 4. Wrapper 클래스 (1) | 2024.06.15 |
[java/lang] 3. String 클래스 (0) | 2024.06.14 |
[java/lang] 2. System 클래스 (1) | 2024.06.14 |