Language/Java
StringBuilder
Anoi
2023. 1. 18. 22:25
대부분 문자열을 쓴다고 하면 String을 떠올릴 것이다.
예를 들어 여러 개의 문자열을 이어서 출력해야 하는 상황이 있다고 해보자.
1
2
3
4
5
6
|
String str = "홍노아의";
String str1 = "티스토리";
String str2 = "2023년";
String str3 = "1월";
String str4 = str + str1 + str2 + str3;
System.out.println(str4); //홍노아의티스토리2023년1월
|
cs |
String은 immutable하다. 불변이라는 뜻이다.
한 번 String 객체가 생성되면 값을 바꿀 수 없다.
만약 String 클래스로 생성된 객체가 변경된다면 그건 참조하는 String 객체가 바뀐 것이고 이전 String 객체는 가비지 컬렉터행이므로 메모리 낭비에 성능 또한 좋을 리 없다.
이럴 때 사용하는 게 StringBuilder이다
1
2
3
4
5
6
|
StringBuilder sb = new StringBuilder();
sb.append("홍노아의").append("티스토리").append("2023년").append("1월");
System.out.println(sb.toString()); //홍노아의티스토리2023년1월
System.out.println(sb); //Object를 import 하면 객체명만 적어도 객체명.toString()이 출력된다
|
cs |
말 그대로 String을 쌓아주는 것이다
먼저 StringBuilder 객체를 생성하고 추가하고 싶은 문자열을 append()의 인자로 넣어주면 된다.
만일 String에 StringBuilder에 넣는 상황에서는 그냥 넣을 순 없다.
StringBuilder 객체.toString()으로 넣어주면 된다