문자열 하면 가장 먼저 생각나는건 String 일것이다.
간단하고 유용하지만 단점 도 있는데 String 으로 선언한뒤 문자열을 변경했을경우 쓰레기 데이터들이 생겨난다
예시)
public class Main {
public static void main(String[] args) {
String s1 = "*";
s1 += "*";
s1 += "*";
}
}
이런식으로 문자열에 + 연산을 하여 추가할수있다. 하지만 이렇게 사용할경우
처음 초기화 한 값 *, , * 이렇게 전부 사용하게 되고 효율성이 떨어진다.
그러면 우리는 변경하고싶은 문자열이 있을때 어떻게 하면 좋을까? 그때 사용하면 되는것이 바로 StringBuilder
StringBuilder는 우리가 문자열을 편하게 변경할수 있도록 도와준다.
대표적인 예시는
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append("*");// 추가
sb.append("hello");
sb.reverse(); // 역순
System.out.println(sb);
}
}
많은 기능들이 있지만 하나하나 다 설명할수 없기에 append 와 reverse 를 설명하면,
String 에서 + 연산으로 추가해줬던 문자열을 StringBuilder 에서는 append 로 추가해줄수있다.
reverse 는 입력된 “hello” 를 “olleh” 로 나오게 해준다. 무엇보다 문자열을 바꾸기위해 만들어졌기때문에
쓰레기데이터가 생성이 되지않는다는 장점이있다. 데이터와 밀접한 관계가 있는 백엔드 개발자라면 꼭 알아둬야 하는 요소라고 생각한다.