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
반응형