[Java] StringBuilder 개념 및 사용법

onebbu·2023년 2월 7일
0

Java_자바

목록 보기
1/1

개념

자바에서 문자열을 생각하면 자연스럽게 String이 떠오른다.
String은 소위 불변(immutable) 객체라고 한다.
즉, String 객체는 한 번 생성되면 변경할 수 없다.
문자열을 연결할때 자주 사용하는 '+'연산자를 사용하여 문자열을 연결하면 새로운 문자열 객체가 생성된다는 것을 의마한다.
따라서, String 객체와 String 객체를 더하는 행위는 메모리 할당과 메모리 해제를 발생시키며 더하는 연산이 많아진다면 성능적으로 좋지 않다.

생성자

1. 기본 생성자

StringBuilder sb = new StringBuilder();

2. int size 값을 인자로 하는 생성자

int 타입의 값으로 buffer의 사이즈(capacity)를 지정한다.

StringBuilder sb = new StringBuilder(20);

3. String 문자열을 인자로 하는 생성자

StringBuilder sb = new StringBuilder("aaa");

주요 메소드

문자열을 추가하는 메소드

StringBuilder sb = new StringBuilder();
sb.append("abc");
sb.append(4).append("\n");

offset위치에 str 추가

sb.insert(int offset, String str);
sb.insert(2, "ccc")

문자열 대치

첫 번째와 두 번째 파라미터로 받는 숫자 인덱스에 위치한 문자열을 대체한다.

sb.replace(int index1, int index2, String str);
sb.replace(3, 6, "hi");

인덱싱

파라미터가 하나일 경우

해당 인덱스부터 끝까지 인덱싱 한다.

파라미터가 두개일 경우

start 부터 end - 1 까지 인덱싱 한다.

sb.substring(int start);
sb.substring(int start, int end);
 
sb.substring(5);
sb.substring(3, 7);

인덱스의 문자 삭제

인덱스에 위치한 문자 하나를 삭제

sb.deleteCharAt(int index);
sb.deleteCharAt(3);

특정 범위 문자 삭제

start 부터 end-1 까지의 문자를 삭제

sb.delete(int start, int end);
sb.delete(3, sb.length());

String으로 변환

sb.toString();

해당 문자 전체를 뒤집기

sb.reverse();

index 위치의 문자를 s로 변경

sb.setCharAt(int index, String s);

문자열 길이 조정

현재 문자열보다 길게 조정하면 공백으로 채워지고, 현재 문자열보다 짧게 조정하면 나머지 문자는 삭제한다.

sb.setLength(int len)

char 배열 합치기

문자열이 저장된 char[] 배열 사이즈를 현재 문자열 길이와 동일하게 조정.

String 클래스의 trim()이 앞 뒤 공백을 제거하는 것과 같이 공백 사이즈를 제공하는 것, 배열의 남는 사이즈는 공백이므로, 문자열 뒷부분의 공백을 모두 제거해준다고 보면 된다.

sb.trimToSize()

Reference

0개의 댓글