자바에서 문자열을 효율적으로 처리하기 위해 제공하는 클래스
문자열을 조작할 때, 문자열의 길이를 유연하게 조절하고, 다양한 문자열 연산을 빠르게 수행할 수 있도록 설계됨
StringBuilder 객체는 내부 버퍼의 크기를 자동으로 조절하면서 문자열을 수정할 수 있습니다. 따라서 문자열에 대해 추가, 삭제, 수정 작업이 빈번하게 일어날 때 StringBuilder를 사용하는 것이 효율적입니다.
StringBuilder는 String보다 빠른 문자열 조작 성능을 제공합니다. String은 불변(immutable)이기 때문에 문자열이 변경될 때마다 새로운 객체가 생성됩니다. 반면, StringBuilder는 내부 버퍼를 사용하여 문자열을 직접 수정하므로, 메모리 사용과 속도 면에서 더 효율적입니다.
StringBuilder는 동기화되지 않은(비동기적) 클래스입니다. 따라서 멀티스레드 환경에서 안전하지 않지만, 단일 스레드에서 사용하기에는 적합합니다. 동기화가 필요한 경우 StringBuffer를 사용해야 합니다.
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World"); // "Hello World"
sb.insert(5, ","); // "Hello, World"
sb.replace(6, 12, "Java"); // "Hello, Java"
sb.delete(5, 6); // "HelloJava"
sb.reverse(); // "avaJolleH"
String result = sb.toString(); // "avaJolleH"
System.out.println(result);
}
}