[Java] StringBuilder 주요 메소드 본문
실무를 하면서 data로서의 string을 다룰일은 많지만, string을 요래조래 조합하거나 할 일은 많이 없다...
그럼애도 불구하고, 알뜰신잡 느낌으로 String을 다룰수 있는 String builder를 정리하려한다.
1. String으로 충분하지 않나요? 왜 StringBuilder죠?
String str1 = "Hi ";
String str2 = "World";
str1 += str2; // str1 : "Hi World"
2개의 String은 단순히 + 연산을 통해 새로운 string을 만들 수 있다.
String은 불변 객체이므로, + 연산을 하면 새로운 string이 생성된다. 그리고 이전에 있던 문자열은 GC 에서 처리한다.
즉, 메모리 할당과 메모리 해제가 수반되는 연산이라는 뜻이다.
2. String builder
String을 다룰때 마다 JVM이 고통을 받게 되는데, 이것을 해결하기 위해 빌더 가 등장했다.
String builder는 가변성을 가지고 있어 기본 연산에 비해 리소스를 적게 사용하고, 기존 string에 더하거나 빼거나, 대체하는 연산을 하므로 속도도 빠르다는 장점이 있다.
2.1. 생성
// 기본 생성자
StringBuilder builder = new StringBuilder();
// size 지정 생성자 (int type)
// buffer의 capacity를 지정한다.
StringBuilder builder = new StringBuilder(10);
// 초기값이 있는 생성자
StringBuilder builder = new StringBuilder("Hi");
2.2. 메서드
StringBuilder builder = new StringBuilder("Hi");
// 문자열 추가
builder.append("world");
// offset 위치에 문자열 추가
// builder.insert(int ofs, String str);
StringBuilder builder = new StringBuilder(2);
builder.append("Hi");
builder.insert(1, "World");
// HWorldi
// index 위치 문자열 변경
// start ~ end - 1
// builder.replace(int start, int end, String str);
StringBuilder builder = new StringBuilder(2);
builder.append("Hi").append(" World").append(" ").append("its me!");
System.out.println(builder); // Hi World its me!
builder.replace(0, 2, "Hello");
System.out.println(builder); // Hello World its me!
// 인덱싱
builder.substring(int start);
builder.substring(int start, int end);
// 삭제
builder.delete(int start);
builder.delete(int start, int end);
// string 변환
builder.toString();
// 뒤집기!
builder.reverse();
// index 접근 및 변경
builder.setCharAt(int index, String str);
'ETC' 카테고리의 다른 글
Closure Table을 이용한 File Authority 적용기 (0) | 2025.03.17 |
---|---|
RDBMS 에서 tree structure 다루기 (0) | 2025.03.17 |
Cursor AI 사용기 (9) | 2024.11.07 |
MST (Minimum Spanning Tree) 최소 신장 트리 (0) | 2022.04.07 |
벨만포드 알고리즘 (0) | 2022.04.05 |
Comments