[C#] String과 Stringbuilder

임수정·2024년 6월 27일
0

📝 Learning Log

목록 보기
18/47
post-thumbnail

📍 String

string 클래스는 불변(Immutable)한 특성
이는 문자열이 한번 생성되면 변경할 수 없다는 것을 의미!
문자열을 수정하면 새로운 문자열이 생성되며 기존의 문자열은 변경되지 않는다.

string str1 = "Hello";
string str2 = str1 + " World"; // 새로운 문자열 생성

Console.WriteLine(str1); // 출력: Hello
Console.WriteLine(str2); // 출력: Hello World

이러한 string 문자열을 합치려면 + 연산자를 이용할 수 있지만, 반복적인 문자열 연산이 많은 경우에 성능 영향을 미칠 수 있음
그래서 사용하는 것이 Stringbuilder

📍 Stringbuilder

stringbuilder 클래스는 가변(Mutable)한 특성
이는 문자열을 직접 수정할 수 있음을 의미!
stringbuilder는 동적으로 크기가 조정되며, 문자열의 수정이 가능하다.

StringBuilder stringBuilder = new StringBuilder("Hello");
stringBuilder.Append(" World"); // 기존 문자열을 직접 수정

Console.WriteLine(stringBuilder.ToString()); // 출력: Hello World

stringbuilder는 문자열을 조작할 때 메모리에 새로운 문자열을 계속 생성하지 않고, 기존의 버퍼를 활용하여 성능을 향상시킴

📖 String과 Stringbuilder 언제 사용할까?

  • String
    문자열이 변경되지 않고 읽기전용일 경우
    문자열 조작이 적고, 메모리 사용량이 크게 증가하지 않을 경우

  • Stringbuilder
    문자열이 동적으로 변경되며, 연산이 빈번하게 발생하는 경우
    문자열 조작이 많은 연산이 필요할 경우

문자열을 다룰 때는 상황에 맞게 string과 stringbuilder를 선택하여 성능을 최적화하고 메모리를 효율적으로 활용하는 것이 중요

profile
언어는 거들 뿐...

0개의 댓글