Java/Java

Java StringBuilder 사용하는 이유와 사용법

검은고양이개발자 2023. 1. 21. 12:00
반응형

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로 교체해준다

 

반응형