StringBuilder와 StringBuffer 클래스도 String 클래스와 같이 문자열을 다루는 클래스.
다만, String 클래스가 문자열을 생성자로 넣어 인스턴스를 한 번 생성하고 나면 인스턴스가 가진 문자열 값을 변경하지 못하는 단점을 보완한 클래스. 즉, 같은 인스턴스 안의 문자열(char 배열) 필드 값을 추가하거나 변경할 수 있다!
(장점이다! 문자를 추가하거나 삭제할 때 인스턴스 생성을 최소화함으로써 성능 향상!)
두 가지 클래스는 모두 쓰임과 메소드가 같지만, StringBuffer는 여러곳에서 동시에 같은 문자열 인스턴스에 접근할 때 중복 점유를 막을 수 있는 장치가 되어 있습니다(동기화 처리). 때문에 StringBuilder에 비해 좀 더 무겁습니다. 따라서 특별한 이유가 없다면 StringBuilder를 사용하는 것이 일반적입니다.
StringBuilder a = new StringBuilder("Hello");
a.append(" World");
System.out.println(a); // "Hello World"
StringBuilder a = new StringBuilder("Hello");
a.append(" World");
System.out.println(a); // "Hello World"
a.delete(6, 9); // (6~8 삭제)
System.out.println(a); // "Hello ld"
StringBuilder a = new StringBuilder("He World");
a.insert(2, "llo");
System.out.println(a); // "Hello World"
a.insert(5, 55);
System.out.println(a); // "Hello55 World"
}
String str = "Hello";
StringBuilder sb = new StringBuilder(str);
String reverse = sb.reverse().toString();
System.out.println(reverse);
//출력 결과 : olleH