package jun04;
import java.util.Arrays;
/* ABCDEfdsAFDAG 중간 f를 대문자로 할때?
*
* StringBuffer / StringBuilder
* StringBuffer : 멀티 스레드 환경에서 사용할 수 있도록 동기화가 되어있음
* 기본 생성자로 생성하면 16개 문자가 들어가도록 초기 버퍼를 만듦
*
* StringBuilder : 단일 스레드 환경에서만 가용하도록 설계
* StringBuilder (int값); 값만큼 문자를 저장하고 초기 버퍼를 가집니다.
* 버퍼가 부족할 경우 자동으로 버퍼 크기를 늘리기 때문에
* 초기 버퍼가 그닥 중요치 않습니다.
*
*
*/
public class String02 {
public static void main(String[] args) {
// StringBuilder sb = new StringBuilder("Java"); // 도 가능
//StringBuilder sb = new StringBuilder(16); 은 16칸만큼 만들었다는 소리
StringBuilder sb = new StringBuilder();
//sb = "JAVA"; 이건 안됨!!
sb.append("추가"); //오버로드! append()내에 파라미터 값이 여러가지 들어올 수 있다.
sb.append("JAVA");
System.out.println(sb); //추가JAVA
sb.insert(2, "+");
System.out.println(sb); //추가+JAVA
sb.deleteCharAt(3);
System.out.println(sb); //추가+AVA
sb.delete(1, 4);
System.out.println(sb); //추VA
//replace(); 원하는 위치의 문자, 문자열을 교체하기
sb.replace(1, 2, "SPRING"); //index 2~6까지의 문자를 SPRING으로 교체
System.out.println(sb); //추SPRINGA
String str = sb.toString();
System.out.println(str);
StringBuffer sb2 = new StringBuffer();
sb2.append(str);
char[] charArray = str.toCharArray(); //[추, S, P, R, I, N, G, A]
System.out.println(Arrays.toString(charArray));
char[] charArray02 = Arrays.copyOf(charArray, charArray.length);
System.out.println(Arrays.toString(charArray02));
//[P, R]
char[] charArray03 = Arrays.copyOfRange(charArray02, 2,4);
System.out.println(Arrays.toString(charArray03));
System.out.println(Arrays.toString(charArray02));
charArray02 = charArray.clone();
System.out.println(Arrays.toString(charArray02)); //값만 가져옵니다
}
}
--------------정리