내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

StringBuilder 클래스

2013-12-13

변경할 수 있는 문자열을 나타냅니다. 이 클래스는 상속될 수 없습니다.

System.Object
  System.Text.StringBuilder

Namespace:  System.Text
어셈블리:  mscorlib(mscorlib.dll)

‘선언
Public NotInheritable Class StringBuilder

StringBuilder 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Public 메서드StringBuilderStringBuilder 클래스의 새 인스턴스를 초기화합니다.
Public 메서드StringBuilder(Int32)지정된 용량을 사용하여 StringBuilder 클래스의 새 인스턴스를 초기화합니다.
Public 메서드StringBuilder(String)지정된 문자열을 사용하여 StringBuilder 클래스의 새 인스턴스를 초기화합니다.
Public 메서드StringBuilder(Int32, Int32)지정된 용량으로 시작되어 지정된 최대 용량까지 커질 수 있는 StringBuilder 클래스의 새 인스턴스를 초기화합니다.
Public 메서드StringBuilder(String, Int32)지정된 문자열과 용량을 사용하여 StringBuilder 클래스의 새 인스턴스를 초기화합니다.
Public 메서드StringBuilder(String, Int32, Int32, Int32)지정된 부분 문자열과 용량을 사용하여 StringBuilder 클래스의 새 인스턴스를 초기화합니다.
맨 위

  이름설명
Public 속성Capacity현재 인스턴스에 의해 할당된 메모리에 포함할 수 있는 최대 문자 수를 가져오거나 설정합니다.
Public 속성Chars이 인스턴트에서 특정 위치에 있는 문자를 가져오거나 설정합니다.
Public 속성Length현재 StringBuilder 개체의 길이를 가져오거나 설정합니다.
Public 속성MaxCapacity이 인스턴스의 최대 용량을 가져옵니다.
맨 위

  이름설명
Public 메서드Append(Boolean)지정된 부울 값의 문자열 표현을 이 인스턴스의 끝에 추가합니다.
Public 메서드Append(Byte)지정된 8비트 부호 없는 정수의 문자열 표현을 이 인스턴스의 끝에 추가합니다.
Public 메서드Append(Char)지정된 유니코드 문자의 문자열 표현을 이 인스턴스의 끝에 추가합니다.
Public 메서드Append(Char())지정된 배열의 유니코드 문자에 대한 문자열 표현을 이 인스턴스의 끝에 추가합니다.
Public 메서드Append(Decimal)지정된 10진수의 문자열 표현을 이 인스턴스에 추가합니다.
Public 메서드Append(Double)지정된 배정밀도 부동 소수점 숫자의 문자열 표현을 이 인스턴스의 끝에 추가합니다.
Public 메서드Append(Int16)지정된 16비트 부호 있는 정수의 문자열 표현을 이 인스턴스의 끝에 추가합니다.
Public 메서드Append(Int32)지정된 32비트 부호 있는 정수의 문자열 표현을 이 인스턴스의 끝에 추가합니다.
Public 메서드Append(Int64)지정된 64비트 부호 있는 정수의 문자열 표현을 이 인스턴스의 끝에 추가합니다.
Public 메서드Append(Object)지정된 개체의 문자열 표현을 이 인스턴스의 끝에 추가합니다.
Public 메서드Append(SByte)지정된 8비트 부호 있는 정수의 문자열 표현을 이 인스턴스의 끝에 추가합니다.
Public 메서드Append(Single)지정된 단정밀도 부동 소수점 숫자의 문자열 표현을 이 인스턴스의 끝에 추가합니다.
Public 메서드Append(String)지정된 문자열의 복사본을 이 인스턴스의 끝에 추가합니다.
Public 메서드Append(UInt16)지정된 16비트 부호 없는 정수의 문자열 표현을 이 인스턴스의 끝에 추가합니다.
Public 메서드Append(UInt32)지정된 32비트 부호 없는 정수의 문자열 표현을 이 인스턴스의 끝에 추가합니다.
Public 메서드Append(UInt64)지정된 64비트 부호 없는 정수의 문자열 표현을 이 인스턴스의 끝에 추가합니다.
Public 메서드Append(Char, Int32)유니코드 문자에 대한 문자열 표현의 지정된 복사본 수를 이 인스턴스의 끝에 추가합니다.
Public 메서드Append(Char(), Int32, Int32)유니코드 문자의 지정된 하위 배열에 대한 문자열 표현을 이 인스턴스의 끝에 추가합니다.
Public 메서드Append(String, Int32, Int32)지정된 부분 문자열의 복사본을 이 인스턴스의 끝에 추가합니다.
Public 메서드AppendFormat(String, Object())0개 이상의 서식 항목이 포함된 합성 서식 문자열을 처리하여 반환된 문자열을 이 인스턴스에 추가합니다. 각 서식 항목이 매개 변수 배열에서 해당하는 인수의 문자열 표현으로 바뀝니다.
Public 메서드AppendFormat(IFormatProvider, String, Object())0개 이상의 서식 항목이 포함된 합성 서식 문자열을 처리하여 반환된 문자열을 이 인스턴스에 추가합니다. 각 서식 항목이 매개 변수 배열에서 지정된 서식 공급자를 사용하여 해당하는 인수의 문자열 표현으로 바뀝니다.
Public 메서드AppendLine현재 StringBuilder 개체의 끝에 기본 줄 종결자를 추가합니다.
Public 메서드AppendLine(String)현재 StringBuilder 개체의 끝에 지정한 문자열의 복사본과 기본 줄 종결자를 추가합니다.
Public 메서드Clear현재 StringBuilder 인스턴스에서 모든 문자를 제거합니다.
Public 메서드CopyTo이 인스턴스에서 지정한 세그먼트의 문자를 대상 Char 배열에서 지정한 세그먼트에 복사합니다.
Public 메서드EnsureCapacityStringBuilder 인스턴스의 용량이 최소한 지정된 값이 되도록 합니다.
Public 메서드Equals(Object)지정한 Object가 현재 Object와 같은지 확인합니다. (Object에서 상속됨)
Public 메서드Equals(StringBuilder)이 인스턴스가 지정한 개체와 같은지 여부를 나타내는 값을 반환합니다.
Protected 메서드Finalize가비지 수집기에서 Object를 회수하기 전에 개체가 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드GetHashCode특정 형식에 대한 해시 함수 역할을 합니다. (Object에서 상속됨)
Public 메서드GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드Insert(Int32, Boolean)지정된 문자 위치에 있는 이 인스턴스에 부울 값의 문자열 표현을 삽입합니다.
Public 메서드Insert(Int32, Byte)지정된 8비트 부호 없는 정수의 문자열 표현을 지정된 문자 위치에 있는 이 인스턴스에 삽입합니다.
Public 메서드Insert(Int32, Char)지정된 유니코드 문자의 문자열 표현을 지정된 문자 위치에 있는 이 인스턴스에 삽입합니다.
Public 메서드Insert(Int32, Char())지정된 유니코드 문자 배열의 문자열 표현을 지정된 문자 위치에 있는 이 인스턴스에 삽입합니다.
Public 메서드Insert(Int32, Decimal)10진수의 문자열 표현을 지정된 문자 위치에 있는 이 인스턴스에 삽입합니다.
Public 메서드Insert(Int32, Double)배정밀도 부동 소수점 숫자의 문자열 표현을 지정된 문자 위치에 있는 이 인스턴스에 삽입합니다.
Public 메서드Insert(Int32, Int16)지정된 16비트 부호 있는 정수의 문자열 표현을 지정된 문자 위치에 있는 이 인스턴스에 삽입합니다.
Public 메서드Insert(Int32, Int32)지정된 32비트 부호 있는 정수의 문자열 표현을 지정된 문자 위치에 있는 이 인스턴스에 삽입합니다.
Public 메서드Insert(Int32, Int64)부호 있는 64비트 정수의 문자열 표현을 지정된 문자 위치에 있는 이 인스턴스에 삽입합니다.
Public 메서드Insert(Int32, Object)개체의 문자열 표현을 지정된 문자 위치에 있는 이 인스턴스에 삽입합니다.
Public 메서드Insert(Int32, SByte)지정된 8비트 부호 있는 정수의 문자열 표현을 지정된 문자 위치에 있는 이 인스턴스에 삽입합니다.
Public 메서드Insert(Int32, Single)단정밀도 부동 소수점 숫자의 문자열 표현을 지정된 문자 위치에 있는 이 인스턴스에 삽입합니다.
Public 메서드Insert(Int32, String)문자열을 지정한 인덱스에 있는 이 인스턴스에 삽입합니다.
Public 메서드Insert(Int32, UInt16)부호 없는 16비트 정수의 문자열 표현을 지정된 문자 위치에 있는 이 인스턴스에 삽입합니다.
Public 메서드Insert(Int32, UInt32)부호 없는 32비트 정수의 문자열 표현을 지정된 문자 위치에 있는 이 인스턴스에 삽입합니다.
Public 메서드Insert(Int32, UInt64)부호 없는 64비트 정수의 문자열 표현을 지정된 문자 위치에 있는 이 인스턴스에 삽입합니다.
Public 메서드Insert(Int32, String, Int32)지정된 하나 이상의 문자열의 복사본을 지정된 문자 위치에 있는 이 인스턴스에 삽입합니다.
Public 메서드Insert(Int32, Char(), Int32, Int32)유니코드 문자의 지정된 하위 배열에 대한 문자열 표현을 지정된 문자 위치에 있는 이 인스턴스에 삽입합니다.
Protected 메서드MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드Remove이 인스턴스에서 지정된 문자 범위를 제거합니다.
Public 메서드Replace(Char, Char)이 인스턴스에서 발견되는 지정된 문자를 지정된 다른 문자로 모두 바꿉니다.
Public 메서드Replace(String, String)이 인스턴스에서 발견되는 지정된 문자열을 지정된 다른 문자열로 모두 바꿉니다.
Public 메서드Replace(Char, Char, Int32, Int32)이 인스턴스의 부분 문자열에서 발견되는 지정된 문자를 지정된 다른 문자로 모두 바꿉니다.
Public 메서드Replace(String, String, Int32, Int32)이 인스턴스의 부분 문자열에서 발견되는 지정된 문자열을 지정된 다른 문자열로 모두 바꿉니다.
Public 메서드ToString이 인스턴스의 값을 String으로 변환합니다. (Object.ToString을(를) 재정의함)
Public 메서드ToString(Int32, Int32)이 인스턴스의 부분 문자열 값을 String으로 변환합니다.
맨 위

이 클래스는 변경할 수 있는 문자 시퀀스를 값으로 갖는 문자열 형태의 개체를 나타냅니다. 이 값은 문자를 추가, 제거, 교체 및 삽입하여 만든 후에 수정할 수 있으므로 변경 가능합니다. 다른 클래스와 비교하려면 String 클래스를 참조하세요.

이 클래스의 인스턴스를 수정하는 대부분의 메서드는 이 클래스의 동일한 인스턴스에 대한 참조를 반환합니다. 인스턴스에 대한 참조가 반환되면 이 참조에 대한 메서드나 속성을 호출할 수 있습니다. 이러한 기능은 연속적인 작업을 차례대로 연결하는 단일 문을 작성할 때 유용합니다.

StringBuilder의 용량은 인스턴스가 지정된 시간에 저장할 수 있는 최대 문자 수이며, 인스턴스 값의 문자열 표현 길이보다 크거나 같습니다. Capacity 속성이나 EnsureCapacity 메서드를 사용하여 이 용량을 늘리거나 줄일 수 있지만 Length 속성 값보다 작게 이 용량을 지정할 수는 없습니다.

StringBuilder의 인스턴스가 초기화될 때 지정된 용량이나 최대 용량이 없으면 해당 구현의 기본값이 사용됩니다.

성능 고려 사항

String.ConcatAppendFormat 메서드는 새 데이터를 기존 String 또는 StringBuilder 개체에 연결합니다. String 개체 연결 작업에서는 항상 기존 문자열과 새 데이터로 새 개체를 만듭니다. StringBuilder 개체는 연결된 새 데이터를 수용할 버퍼를 유지합니다. 새 데이터는 공간이 있을 경우 버퍼 끝에 추가되고, 그렇지 않으면 더 큰 새로운 버퍼가 할당되고, 원래 버퍼의 데이터가 새 버퍼에 복사된 다음, 새 데이터가 새 버퍼에 추가됩니다.

String 또는 StringBuilder 개체에 대한 연결 작업의 성능은 얼마나 자주 메모리를 할당하는지에 따라 달라집니다. StringBuilder 연결 작업에서는 StringBuilder 개체 버퍼가 너무 작아 새 데이터를 넣을 수 없는 경우에만 메모리가 할당되는 반면, String 연결 작업에서는 항상 메모리가 할당됩니다. 따라서 고정된 수의 String 개체를 연결하는 연결 작업에는 String 클래스가 더 적합합니다. 이 경우 개별 연결 작업이 컴파일러를 통해 단일 작업으로 결합될 수 있습니다. 임의의 수의 문자열을 연결하는 작업(예: 루프에서 임의의 수의 사용자 입력 문자열을 연결할 경우)에는 StringBuilder 개체가 더 적합합니다.

버전 메모

Windows Phone

 StringBuilder 개체는 개체에 문자를 추가하는 데 필요한 만큼 추가로 메모리를 할당할 수 있습니다. 할당되는 메모리의 양은 구현 방식에 따라 다르며, 필요한 메모리의 양을 사용할 수 없으면 OutOfMemoryException이 발생합니다. StringBuilder의 대체 방법이 필요한 경우 StringBuilder를 사용하는 대신 MemoryStream을 열고 메모리 스트림에 문자열을 씁니다.

구현자 참고 사항

이 구현에 대한 기본 용량은 16이고, 기본 최대 용량은 Int32.MaxValue입니다.

StringBuilder는 인스턴스의 값이 커지면 문자를 저장하는 데 필요한 메모리를 추가로 할당하므로 용량이 알맞게 조정됩니다. 할당되는 메모리의 양은 구현 방식에 따라 다르고 필요한 메모리의 양이 최대 용량보다 크면 ArgumentOutOfRangeException이 발생됩니다.

예를 들면, Append, AppendFormat, EnsureCapacity, InsertReplace 메서드는 인스턴스의 값을 확대할 수 있습니다.

Chars 속성을 사용하면 StringBuilder 값의 개별 문자에 액세스할 수 있습니다. 인덱스 위치는 0부터 시작합니다.

다음 코드 예제에서는 StringBuilder 클래스에서 정의한 여러 메서드를 호출하는 방법을 보여 줍니다.


Imports System.Text

Public Module Example
   Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
      ' Create a StringBuilder that expects to hold 50 characters.
      ' Initialize the StringBuilder with "ABC".
      Dim sb As New StringBuilder("ABC", 50)

      ' Append three characters (D, E, and F) to the end of the StringBuilder.
      sb.Append(New Char() {"D"c, "E"c, "F"c})

      ' Append a format string to the end of the StringBuilder.
      sb.AppendFormat("GHI{0}{1}", "J"c, "k"c)

      ' Display the number of characters in the StringBuilder and its string.
      outputBlock.Text += String.Format("{0} chars: {1}", sb.Length, sb.ToString()) & vbCrLf

      ' Insert a string at the beginning of the StringBuilder.
      sb.Insert(0, "Alphabet: ")

      ' Replace all lowercase k's with uppercase K's.
      sb.Replace("k", "K")

      ' Display the number of characters in the StringBuilder and its string.
      outputBlock.Text += String.Format("{0} chars: {1}", sb.Length, sb.ToString()) & vbCrLf
   End Sub
End Module

' This code produces the following output.
'
' 11 chars: ABCDEFGHIJk
' 21 chars: Alphabet: ABCDEFGHIJK


Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 모든 인스턴스 멤버는 스레드로부터 안전하지 않을 수 있습니다.

표시:
© 2014 Microsoft