코테 공부/java
StringBuilder
sweet-po
2023. 5. 15. 01:32
많은 문자열을 연결하면 많은 중간 문자열 객체가 생성되어 비효율적이다.
String 객체는 변경 불가능하여 한 번 생성되면 내용을 바꿀 수 없다.
따라서 하나의 문자열을 다른 문자열과 연결하면 새 문자열이 생성되고, 이전 문자열은 가비지 컬렉터로.
StringBuilder는 변경 가능한 문자열을 만들어 주기 때문에, String을 합치는 작업 시 하나의 대안이 된다.
public static void main(String[] args)
{
StringBuilder strBuilder = new StringBuilder();
strBuilder.append("문자열 ").append("연결");
// String str = stringBuilder; String에 StringBuilder 그대로 할당 불가.
// toString()을 붙여야.
String str = strBuilder.toString();
//new StringBuilder() 괄호 안에 String 타입 넣어주면 해당 String 내용을 가진 StringBuilder 객체 생성 가능.
StringBuilder newStrBuilder = new StringBuilder(str);
// 문자열 연결 -같은 값을 출력
System.out.println(strBuilder);
System.out.println(str);
System.out.println(newStrBuilder);
// 결연 열자문 -아까거 거꾸로
strBuilder.reverse();
System.out.println(strBuilder);
// StringBuilder 일부 대체
// strBuilder.replace(시작 인덱스, 끝 인덱스(제외), 대체해서 들어갈 String);
// 1번 인덱스 부터 문자열 들어가서 문자열 다 넣고 기존에 3번째 인덱스부터 다시 시작
// 문결연 열자문연결
newStrBuilder.replace(1,3, strBuilder.toString());
System.out.println(newStrBuilder);
StringBuilder StrBuilder = new StringBuilder("0123456789");
// 0추가56789
// 들어가는 문자열이 시작과 끝 인덱스 사이 수보다 적으면 그냥 날리고 5번 인덱스부터 그대로 추가
StrBuilder.replace(1,5, "추가");
System.out.println(StrBuilder);
}