본문 바로가기

hayee Study/코딩_c#

[C#] StringBuilder, String 차이

반응형

안녕하세요 heyee 입니다.
 
c# 에서는 String 과 StringBuilder 클래스를 사용하여 문자열 처리를 할 수 있습니다. 저는 주로 아래와 같은 상황일 때 StringBuilder 클래스를 사용하고 그 외에는 String 을 사용하고 있습니다.
 

  • StringBuilder

-  반복적으로 많은 문자열을 사용해야 할 경우. (string 으로 사용할 경우 문자열 크기에 따라 할당되는 사이즈가 다 다르기 때문)
-  조합해야할 문자열이 많을 때. (저는 주로 DB query 문 생성 시 사용하고 있습니다.)
 
String 관련하여 아래의 글도 참고하면 좋을 듯 싶습니다.
 

https://hayee.tistory.com/21 

 

[C#] string 정리 (substring, contain, equal, concat)

안녕하세요 hayee 입니다. 개발건에 따라 MFC 또는 C# 언어를 사용하여 코딩을 하다보니 함수 등 여러가지가 헷갈린 적이 많아 구글링을 하는 경우가 빈번했었습니다. 그래서 정리를 하려고 합니다

hayee.tistory.com

 


 

◈ 예제 소스 (1)

// 버튼 클릭 이벤트
private void btnTest_Click(object sender, EventArgs e)
{
    StringBuilder sb = new StringBuilder();

    string[] sArrText = new string[3];

    sArrText[0] = "StringBuilder ";
    sArrText[1] = "test ";
    sArrText[2] = "source ";

    foreach(string sText in sArrText)
    {
        sb.Append(sText); // 문자열을 StringBuilder 맨 끝에 추가한다.
    }

    Trace.WriteLine(sb.ToString());
    
    // 결과
    StringBuilder test source << 출력.
}

- Append 메소드를 사용하여 문자열을 StringBuilder 맨 끝에 추가한다.
 
◈ 예제 소스 (2)

// 버튼 클릭 이벤트
private void btnTest_Click(object sender, EventArgs e)
{
    StringBuilder sb = new StringBuilder();

    int[] nArrNumber = new int[3];

    nArrNumber[0] = 11;
    nArrNumber[1] = 22;
    nArrNumber[2] = 33;

    sb.AppendFormat("{0} {1} {2}", nArrNumber[0], nArrNumber[1], nArrNumber[2]);

    Trace.WriteLine(sb.ToString());
   
    // 결과
    11 22 33 << 출력
}

- AppendFormat 메소드를 사용하여 int 타입의 값들을 string 타입으로 바꿔 StringBuilder 맨 끝에 추가한다.

 
 
 

 

# 틀린 부분이 있다면 댓글 부탁드립니다. #
# 댓글 달아주시면 늦게라도 블로그 방문하도록 할게요! 감사합니다. #

 

 

728x90
반응형