본문 바로가기

프로그램 공부/C#

StringBuilder (계속해서 변경해야하는 string 변수일 경우 사용)

C#에서 string은 Immutable Type(한번 값이 설정되면 다시 변경할 수 없는 타입)이다.

그렇기에 'string a = "AA"; '라고 설정한 후 'a = "Aa"; '을 실행하면 대입이 아닌 새로운 string 객체를 생성하여 "Aa"라는 는 데이터로 초기화 한 후에 변수명 a에 할당한다. 즉 변수 a는 전혀 다른 메모리를 갖는 객체를 가르키는 것이다.

 

반면에 System.Text.StringBuilder 클래스는 Mutable Type(값을 계속 변경할 수 있는 타입)이기에 문자열 갱신을 많이하는 프로그램에 자주 사용된다. StringBuilder는 클래스가 별도 메모리를 생성, 소멸하지 않고 일정한 버퍼를 갖고 문자열 갱신을 효율적으로 처리하기 때문이다.

 

함수 기능
Append() 문자열 추가
Insert(1, "ex") 문자열 1번째 위치에 "ex"삽입
Remove(1, 2) 문자열 1번째 위치에서 2개의 문자들을 제거
Replace("ex", "EX") 문자열 중 "ex"라는 문자 모두 "EX"로 변경
Replace("ex", "EX", 1, 10) 문자열 1번째에서 10번째 문자열 사이 중 "ex"라는 문자 모두 "EX"로 변경
ToString() StringBuilder객체를 String형으로 변경