String 타입의 문자열에 새로운 값을 추가하고 싶으면
String str = "고양이";
str+="귀여워";
System.out.println(str); >>고양이귀여워
이런식으로 문자열에 바로 '+'를 통해 원하는 바를 얻을 수 있는데
우리는 왜 StringBuilder 클래스를 사용할까?
일단 StringBuilder는 문자열을 버퍼에 담아 그 안에서 추가 수정 삭제 작업을 할 수 있도록 도와주는 클래스이다.
이는 String 문자열의 존재를 유지한체 그 문자열을 수정해주는 반면
'+' 를 통해 String 타입에 추가를 해주는 건 기존의 객체를 수정하는 게 아닌, 새로운 객체를 생성하는 거여서
메모리 할당과 해제를 발생시켜 프래그램의 성능을 저하시키게 된다.
그렇기에 StringBuilder 클래스를 사용하여 새로운 객체를 만드는 게 아닌 그 문자열 자체를 변경하는 작업을 하게되면
프로그램 성능을 저하시키지 않을 수 있다.
StringBuilder 사용법(append, insert, setCharAt, replace)
StringBuilder sb =new StringBuilder();
sb.append("고");
sb.append("양");
sb.append("이");
System.out.println(sb.toString()); --> 고양이
sb.insert(2,"삼");
System.out.println(sb.toString()); --> 고양삼이
sb.setCharAt(2,'이');
System.out.println(sb.toString()); --> 고양이이
sb.replace(2,4,"이다");
System.out.println(sb.toString()); --> 고양이다
StringBuilder 참조변수명 = new StringBuilder(); 를 통해 선언을 해줄 수 있다.
append(String str))
참조변수명 (여기서는 sb) sb.append()를 통해 추가할 수 있다.
insert(int index, String str)
해당 index에 문자열을 추가할 수 있다.
setCharAt(int index, char a)
해당 index의 문자를 char a로 바꿔준다
replace(int from, int to, String str)
from index 부터 (to-1) index까지의 문자열을 str로 교체해준다
'Java > Java' 카테고리의 다른 글
Java StringBuilder vs StringBuffer /Thread (0) | 2023.01.21 |
---|---|
Java Thread (0) | 2023.01.21 |
Java 객체지향 프로그래밍 static (class 변수, instance변수) (0) | 2023.01.15 |
Java 문자열 나누는 방법, 문자열 자르기 ( substring(), split()) (0) | 2023.01.15 |
Java 컬렉션 프레임워크 Map(HashMap) #로그인 코드 만들기 (0) | 2023.01.14 |