Programming/Java
[Java 자바] 11. 기본 API 클래스 ⑥ StringBuffer, StringBuilder 클래스
erinh
2022. 9. 4. 21:41
반응형
11-7. StringBuffer, StringBuilder 클래스
- 문자열을 저장하는 String 내부의 문자열을 수정할 수 없음
- replace()메소드나 +연산의 경우, 기존 String객체를 수정하는 것이 아닌 새로운 String 객체를 생성하여 그를 참조하게 함
- 문자를 결합하는 + 연산자를 많이 사용할 수록 String 객체의 수가 늘어나고 프로그램 성능 저하의 요인이 됨
=> StringBuffer 또는 StringBuilder 클래스를 이용해 임시로 문자열을 저장하고 추가, 수정, 삭제 작업을 진행
- StringBuffer은 멀티 스레드 환경에서 사용할 수 있도록 동기화가 적용되어 스레드에 안전
- StringBuilder는 단일 스레드 환경에서만 사용하도록 설계
11-7-1. StringBuilder 클래스
메소드 | 설명 |
append(...) | 문자열 끝에 주어진 매개값을 추가 |
insert(int offset, ...) | 문자열 중간인덱스(offset)에 주어진 매개값을 추가 |
delete(int start, int end) | start index부터 end index 전까지의 문자열 삭제 |
deleteCharAt(int index) | 문자열에서 주어진 Index의 문자열 삭제 |
replace(int start, int end, String str) | start index부터 end index 전까지의 문자열을 str로 대체 |
reverse() | 문자열의 순서를 뒤바꿈 |
setCharAt(int index, char ch) | 문자열에서 주어진 Index의 문자를 다른 문자로 대치 |
StringBuilder sb = new StringBuilder();
sb.append("Erin");
sb.append("'s blog");
System.out.println(sb.toString()); // Erin's blog
sb.insert(0, "It's ");
System.out.println(sb.toString()); // It's Erin's blog
sb.setCharAt(5, 'e');
System.out.println(sb.toString()); // It's erin's blog
sb.replace(0, 5, "Welcome to ");
System.out.println(sb.toString()); // Welcome to erin's blog
sb.delete(0, 11);
System.out.println(sb.toString()); // erin's blog
반응형