스트링빌더(StringBuilder)
문자열을 동적으로 생성하고 관리하기 위한 클래스.
문자열 연산 시 메모리 및 성능을 개선하기 위해 사용됨.
기존 문자열 연산의 문제점
문자열을 변경할 때마다 새로운 문자열 객체를 생성하는 방식이었는데, 이로 인해 메모리 낭비가 발생하고 성능 저하가 있을 수 있음.
=> 스트링빌더는 가변적이며 수정 가능한 문자열을 생성할 수 있음.
예제
using System; using System.Text; class Program { static void Main() { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("Hello, "); // 문자열을 덧붙임 stringBuilder.Append("World!"); stringBuilder.Append(" This is a StringBuilder example."); string result = stringBuilder.ToString(); // StringBuilder를 문자열로 변환 Console.WriteLine(result); // "Hello, World! This is a StringBuilder example." } }
StringBuilder 클래스는 문자열을 수정 가능하게 만들어주며, Append 메서드를 사용하여 문자열을 추가할 수 있음.
ToString 메서드를 호출하여 StringBuilder의 내용을 string으로 변환.
Append: StringBuilder에 문자열, 문자, 숫자 또는 다른 데이터를 추가.
StringBuilder sb = new StringBuilder(); sb.Append("Hello"); sb.Append(" "); sb.Append(42);
Insert: 지정된 위치에 문자열, 문자, 숫자 또는 다른 데이터를 삽입.
StringBuilder sb = new StringBuilder("World!"); sb.Insert(0, "Hello, ");
Remove: 지정된 범위의 문자를 제거.
StringBuilder sb = new StringBuilder("Hello, World!"); sb.Remove(7, 7); // "Hello, "
Replace: 지정된 문자열을 다른 문자열로 대체.
StringBuilder sb = new StringBuilder("Hello, Universe!"); sb.Replace("Universe", "World");
Clear: StringBuilder의 내용을 모두 제거.
StringBuilder sb = new StringBuilder("Some text"); sb.Clear(); // sb는 비어있는 상태가 됩니다.
Length: 현재 StringBuilder의 길이를 가져오거나 설정.
StringBuilder sb = new StringBuilder("Hello"); int length = sb.Length; // 5 sb.Length = 7; // 길이를 7로 설정하면 "Hello\0\0"가 됩니다.
Capacity: 내부 버퍼의 크기를 가져오거나 설정.
StringBuilder sb = new StringBuilder(20); // 초기 용량 설정 int capacity = sb.Capacity; // 현재 용량 가져오기 sb.Capacity = 50; // 용량 설정
09:00 ~ 10:00 : 알고리즘 코드카타
10:00 ~ 10:30 : 팀 회의
10:30 ~ 14:00 :
12시-1시: 점심식사
14:00 ~ 18:00
6시-7시: 저녁식사
19:00 ~ 20:00 : 집중 코딩 시간 부족한 부분 해결해보기
20:00 ~ 21:00: TIL 작성, 마무리 회고 진행
21:00 : 내일은 위한 휴식!