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()으로 넣어주면 된다