본문 바로가기

Java+Spring Boot

[Java] StringBuilder 의 메서드

String 끼리 '+' 연산을 하여 새로운 문자열을 만들어 내는 방법은 효율성이 좋지 않다. 왜냐하면 

String s = "abc";
s += "def";

 라고 했을 때, s 는 "abc" 였다가 "abcdef" 로 초기화 되는데, 이 과정에서 s 는 기존에 참조하던 "abc"의 참조값을 버리고 새로운 String 객체 ("abcdef") 를 참조하게 되는 것이다. 따라서 잦은 문자열 변경 작업이 필요하다면 StringBuilder를 사용하는 것이 좋다.


StringBuilder는 내부 버퍼(데이터를 저장하는 메모리)에 문자열을 저장해두고 그 안에서 추가, 수정, 삭제 잡업을 하도록 설계되어 있다. 따라서 String 처럼 새로운 객체를 만들지 않고도 문자열을 조작할 수 있따. StringBuilder가 제공하는 메서드는 다음과 같다.

리턴타입 메서드(매개변수) 설명
StringBuilder append(기본값 | 문자열) 문자열을 끝에 추가
StringBuilder insert(위치, 기본값 | 문자열) 문자열을 지정 위치에 추가
StringBuilder delete(시작 위치, 끝 위치) 문자열 일부를 삭제
StringBuilder replace(시작 위치, 끝 위치, 문자열) 문자열 일부를 대체
String toString() 완성된 문자열을 리턴

toString() 을 제외한 다른 메서드는 StringBuilder를 다시 리턴하기 때문에 메서드 체이닝 패턴을 사용할 수 있다.

<EX>

//..JAVA

String data = new StringBuilder()
	.append("DEF")				//data="DEF"
    .insert(0,"ABC")				//data="ABCDEF"
    .delete(3,4)				//data="ABCEF"
    .toString();

 

(복습용 포스트 입니다. 잘못된 정보는 코멘트 남겨주시면 감사하겠습니당)