String은 불변(Immutable)이다
String은 참조 타입이면서 불변이다. 데이터 변경때마다 힙에 새로운 메모리 공간이 할당되어야 한다. 그렇기 때문에 잦은 데이터 변경은 시스템에 부하를 가져온다.
참조 타입이면서 가변(Mutable)인 StringBuilder
그래서 잦은 문자열 변경이 예상된다면 StringBuilder를 사용하도록 하자.
using System.Text;
class Program
{
static void Main(string[] args)
{
StringBuilder sb = new StringBuilder("31555", 2);
Console.WriteLine(sb.Length); // 5
Console.WriteLine(sb.ToString()); // 31555
}
}
Append vs AppendLine
Append()
- 기존 문자열 뒤에 문자열을 추가한다.
AppendLine()
- 기존 문자열 뒤에 문자열을 추가하고 다음 라인으로 개행한다.
static void Main(string[] args)
{
StringBuilder sb = new StringBuilder("31555", 2);
Console.WriteLine(sb.ToString());
sb.AppendLine("4455");
sb.AppendLine("0011");
sb.Append("0022");
sb.AppendLine("0033");
Console.WriteLine(sb.ToString());
}
생각해볼 부분
StringBuilder 결과값을 얻기 위해서 ToString()을 써야하는가? 안써도 실행, 결과값에 전혀 문제 없음
'프로그래밍 > C#' 카테고리의 다른 글
C# 비트 연산자를 이용한 홀수짝수 판별, 절반으로 나누기 함수 구현 (0) | 2024.03.18 |
---|---|
C# char를 int로 바꾸는데 '0'을 빼는 이유 (0) | 2024.02.26 |
C# 웹 인증(Authentication) & 권한(Authorization) 코드 작성하기 (0) | 2024.02.19 |
C# Value Type vs Reference Type (0) | 2024.02.15 |
C# yield return을 이용한 소수 생성기 (1) | 2024.02.14 |
댓글