C# 프로그래밍에서 StringBuilder는 문자열의 길이(문자 수)를 동적으로 확장할 수 있게 해주는 클래스입니다. 일반적인 string 타입은 불변(immutable)이기 때문에 한 번 생성되면 내용을 변경할 수 없으며, 수정 시마다 메모리에 새로운 객체가 만들어집니다.
반면 StringBuilder는 기존 객체를 그대로 유지한 채 내용을 확장하거나 수정할 수 있어, 반복적인 문자열 조작 작업에서 성능 면에서 큰 이점을 제공합니다.
StringBuilder의 주요 특징
- 문자열을 자유롭게 확장하고 수정할 수 있습니다.
- 수정 작업 시 새로운 객체를 메모리에 생성하지 않아 효율적입니다.
- 초기 용량(capacity)을 지정하여 메모리 사용을 최적화할 수 있습니다.
StringBuilder 초기화
StringBuilder는 아래와 같이 간단하게 초기화할 수 있습니다.
StringBuilder str = new StringBuilder();
필요에 따라 초기 문자열과 용량을 함께 지정할 수도 있습니다.
C# StringBuilder 사용 예제
다음 예제를 통해 C#에서 StringBuilder를 실제로 활용하는 방법을 살펴보겠습니다.
using System;
using System.Text;
public class Program {
public static void Main() {
StringBuilder str = new StringBuilder("Web World!!", 30);
str.Replace("World", "Arena");
Console.WriteLine(str);
}
}실행 결과
Web Arena!!
예제 설명
위 코드에서는 먼저 초기 문자열 "Web World!!"와 용량 30을 지정하여 StringBuilder 객체를 생성했습니다. 이후 Replace() 메서드를 사용하여 문자열 내의 "World"를 "Arena"로 교체했습니다.
이처럼 StringBuilder의 Replace() 메서드를 활용하면 기존 문자열을 손쉽게 치환할 수 있습니다. 이 외에도 Append(), Insert(), Remove() 등 다양한 메서드를 통해 문자열을 유연하게 조작할 수 있습니다.
문자열 연결 작업이 많은 루프나 대용량 텍스트 처리에서는 string 대신 StringBuilder를 사용하는 것이 권장됩니다.