TIL (57) | 2023.10.17 | StringBuilder

kjg5370·2023년 10월 17일
0

TIL

목록 보기
57/91
post-thumbnail

들어가기 앞서

빌더 패턴을 하면서 Builder라는 글자가 직접 들어가는
StringBuilder에 대해 궁금해져서 한번 알아보고 싶어졌습니다.

오늘 배운 것

  • 스트링빌더(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으로 변환.

기억 할 것

  • StringBuilder 클래스 메서드
  1. Append: StringBuilder에 문자열, 문자, 숫자 또는 다른 데이터를 추가.

    StringBuilder sb = new StringBuilder();
    sb.Append("Hello");
    sb.Append(" ");
    sb.Append(42);
  2. Insert: 지정된 위치에 문자열, 문자, 숫자 또는 다른 데이터를 삽입.

    StringBuilder sb = new StringBuilder("World!");
    sb.Insert(0, "Hello, ");
  3. Remove: 지정된 범위의 문자를 제거.

    StringBuilder sb = new StringBuilder("Hello, World!");
    sb.Remove(7, 7); // "Hello, "
  4. Replace: 지정된 문자열을 다른 문자열로 대체.

    StringBuilder sb = new StringBuilder("Hello, Universe!");
    sb.Replace("Universe", "World");
  5. Clear: StringBuilder의 내용을 모두 제거.

    StringBuilder sb = new StringBuilder("Some text");
    sb.Clear(); // sb는 비어있는 상태가 됩니다.
  6. Length: 현재 StringBuilder의 길이를 가져오거나 설정.

    StringBuilder sb = new StringBuilder("Hello");
    int length = sb.Length; // 5
    sb.Length = 7; // 길이를 7로 설정하면 "Hello\0\0"가 됩니다.
  7. Capacity: 내부 버퍼의 크기를 가져오거나 설정.

    StringBuilder sb = new StringBuilder(20); // 초기 용량 설정
    int capacity = sb.Capacity; // 현재 용량 가져오기
    sb.Capacity = 50; // 용량 설정

진행사항

  • 스테이즈 2 생성
  • 메인 스테이지 포탈 추가 및 정상에 End Point 추가

내일 할 일

  • 하루 계획
    • 오전
      • 09:00 ~ 10:00 : 알고리즘 코드카타
      • 10:00 ~ 10:30 : 팀 회의
      • 10:30 ~ 14:00 :
        • 오늘 계획 (Task)
      • 12시-1시: 점심식사
    • 집중 코딩
      • 14:00 ~ 18:00
    • 저녁
      • 6시-7시: 저녁식사
      • 19:00 ~ 20:00 : 집중 코딩 시간 부족한 부분 해결해보기
      • 20:00 ~ 21:00: TIL 작성, 마무리 회고 진행
      • 21:00 : 내일은 위한 휴식!
profile
학생입니다

0개의 댓글