Yim-HaEun

StringBuilder란? 효율적으로 문자열을 수정,추가,삭제하기 본문

Java/공부

StringBuilder란? 효율적으로 문자열을 수정,추가,삭제하기

Yim_Ha_Eun 2024. 9. 22. 02:18

가변한 문자를 다루기 위한 클래스.

String은 불변, 문자열을 한번 만들면 변경할 수 없다. (수정한다면 새로운 문자열 객체가 만들어짐)

StringBuilder를 이용해 효율적으로 문자열을 수정,추가,삭제할 수 있다.

 

1.생성된 문자열을 직접 수정할 수 있다.

2.메모리와 성능의 효율성(새로운 객체를 만들지 않으므로)

3.동기화되지 않음(멀티스레드환경에서는 안전하지않지만 단일 스레드환경에선 매우 빠름)

멀티스레드환경에서는 **StringBuffer를 사용하자

 

1.append() : 문자열 끝에 새로운 문자열 추가

StringBuilder sb = new StringBuilder("Hello");
sb.append(" World"); // "Hello World"

 

2.insert() : 특정 위치에 문자열 삽입

StringBuilder sb = new StringBuilder("Hello");
sb.insert(5, " World"); // "Hello World"

 

3.delete() : 특정 범위의 문자열을 삭제

StringBuilder sb = new StringBuilder("Hello World");
sb.delete(5, 11); // "Hello"

 

4.deleteCharAt() : 특정 인덱스의 문자 삭제

StringBuilder sb = new StringBuilder("Hello");
sb.deleteCharAt(4); // "Hell"

 

5.replace() : 특정 범위의 문자열을 다른 문자열로 대체

StringBuilder sb = new StringBuilder("Hello World");
sb.replace(6, 11, "Java"); // "Hello Java"

6.reverse() : 문자열 뒤집기

StringBuilder sb = new StringBuilder("Hello");
sb.reverse(); // "olleH"

7.charAt() : 특정 인덱스의  문자를 반환

StringBuilder sb = new StringBuilder("Hello");
char c = sb.charAt(1); // 'e'

 

8. setCharAt() : 특정 인덱스의 문자를 수정

StringBuilder sb = new StringBuilder("Hello");
sb.setCharAt(1, 'a'); // "Hallo"

 

9. length(): 현재 문자열의 길이 반환

//생략

 

10. toString(): StringBuilder 객체를 String으로 변환

StringBuilder sb = new StringBuilder("Hello");
String result = sb.toString(); // "Hello"

 

StringBuilder는 문자열이 자주 변경될 때 사용한다.