많은 문자열을 연결하면 많은 중간 문자열 객체가 생성되어 비효율적이다.
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);
}
'코테 공부 > java' 카테고리의 다른 글
문자열 비교 (동일 여부 equals(), compareTo(), startsWith(), endsWith()) + 정렬 링크 (0) | 2023.05.17 |
---|---|
IntStream, mapToObj 활용하여 접미사 배열 반환 (0) | 2023.05.16 |
list이름.toArray(배열 객체) (0) | 2023.05.14 |
주사위 네개 결과에 따른 다른 점수 반환 (0) | 2023.05.13 |
boolean 변수 초기화? (0) | 2023.05.06 |