이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

StringInfo 클래스

 

문자열을 텍스트 요소로 분할하고 해당 텍스트 요소를 통해 반복하는 기능을 제공합니다.

네임스페이스:   System.Globalization
어셈블리:  mscorlib(mscorlib.dll에 있음)

System.Object
  System.Globalization.StringInfo

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class StringInfo

이름설명
System_CAPS_pubmethodStringInfo()

StringInfo 클래스의 새 인스턴스를 초기화합니다.

System_CAPS_pubmethodStringInfo(String)

지정된 문자열로 StringInfo 클래스의 새 인스턴스를 초기화합니다.

이름설명
System_CAPS_pubpropertyLengthInTextElements

현재 StringInfo 개체의 텍스트 요소 수를 가져옵니다.

System_CAPS_pubpropertyString

현재 StringInfo 개체의 값을 가져오거나 설정합니다.

이름설명
System_CAPS_pubmethodEquals(Object)

현재 StringInfo 개체가 지정된 개체와 같은지 여부를 나타냅니다.(Object.Equals(Object)을(를) 재정의함)

System_CAPS_protmethodFinalize()

개체가 가비지 수집자에서 회수되기 전에, 해당 개체에서 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)

System_CAPS_pubmethodGetHashCode()

현재 값에 대 한 해시 코드를 계산 StringInfo 개체입니다.(Object.GetHashCode()을(를) 재정의함)

System_CAPS_pubmethodSystem_CAPS_staticGetNextTextElement(String)

지정된 된 문자열의 첫째 텍스트 요소를 가져옵니다.

System_CAPS_pubmethodSystem_CAPS_staticGetNextTextElement(String, Int32)

지정된 된 문자열의 지정된 된 인덱스에 텍스트 요소를 가져옵니다.

System_CAPS_pubmethodSystem_CAPS_staticGetTextElementEnumerator(String)

전체 문자열의 텍스트 요소를 반복 하는 열거자를 반환 합니다.

System_CAPS_pubmethodSystem_CAPS_staticGetTextElementEnumerator(String, Int32)

지정된 된 인덱스에서 시작 하 여 문자열의 텍스트 요소를 반복 하는 열거자를 반환 합니다.

System_CAPS_pubmethodGetType()

현재 인스턴스의 Type을 가져옵니다.(Object에서 상속됨)

System_CAPS_protmethodMemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.(Object에서 상속됨)

System_CAPS_pubmethodSystem_CAPS_staticParseCombiningCharacters(String)

각 기본 문자, 상위 서로게이트 또는 지정된 된 문자열 내에서 제어 문자를 반환합니다.

System_CAPS_pubmethodSubstringByTextElements(Int32)

현재에서 텍스트 요소의 부분 문자열을 검색 StringInfo 개체는 지정 된 텍스트 요소에서 시작 하 고 마지막 텍스트 요소까지 계속 합니다.

System_CAPS_pubmethodSubstringByTextElements(Int32, Int32)

현재에서 텍스트 요소의 부분 문자열을 검색 StringInfo 개체는 지정 된 텍스트 요소에서 시작 하 고 지정 된 개수의 텍스트 요소까지 계속 합니다.

System_CAPS_pubmethodToString()

현재 개체를 나타내는 문자열을 반환합니다.(Object에서 상속됨)

.NET Framework의 문자 소 즉, 단일 문자로 표시 되는 텍스트 단위로 텍스트 요소를 정의 합니다. 텍스트 요소, 사용할 수 있습니다는 기본 문자 서로게이트 쌍 조합 문자 시퀀스입니다. Unicode Standard 두 명의 코드 단위, 여기서 쌍의 첫 번째 단위 high surrogate 인지 하 고 두 번째는 하위 서로게이트의 시퀀스를 구성 하는 단일 추상 문자에 대 한 코드 문자 표현으로 서로게이트 쌍을 정의 합니다. 유니코드 표준은 정의 결합 문자 시퀀스는 기본 문자가 고 하나 이상의 결합 문자를 조합 합니다. 서로게이트 쌍 조합 문자 또는 기본 문자를 나타낼 수 있습니다.

StringInfo 클래스를 사용 하는 일련의 개별이 아닌 텍스트 요소의 문자열로 사용할 수 있습니다 Char 개체입니다.

인스턴스화하는 StringInfo 지정된 된 문자열을 나타내는 개체 다음 중 하나를 수행할 수 있습니다.

  • 호출는 StringInfo(String) 생성자 문자열을 전달 하는 StringInfo 개체는 인수로 나타낼 수 있습니다.

  • 기본 호출 StringInfo() 생성자, 문자열을 할당 하 고는 StringInfo 를 나타내기 위해 개체는는 String 속성입니다.

두 가지 방법으로 문자열의 개별 텍스트 요소를 작업할 수 있습니다.

  • 각 텍스트 요소를 열거 합니다. 이 작업을 수행 하려면는 GetTextElementEnumerator 메서드를 반복적으로 호출 하 고는 MoveNext 메서드 반환 된 TextElementEnumerator 메서드가 반환 될 때까지 개체 false합니다.

  • 호출 하 여는 ParseCombiningCharacters 메서드를 시작 하는 각 텍스트 요소의 인덱스를 포함 하는 배열을 검색 합니다. 이러한 인덱스에 전달 하 여 개별 텍스트 요소를 검색 한 다음는 SubstringByTextElements 메서드.

다음 예제에서는 두 가지 방식을 문자열의 텍스트 요소를 보여 줍니다. 두 문자열을 만듭니다.

  • strCombining를 여러 개 포함 된 세 개의 텍스트 요소를 포함 하는 문자열 아랍어 문자 변수인 Char 개체입니다. 첫 번째 텍스트 요소가 기본 문자 아랍어 문자 인수 (U +-627) 아랍어 HAMZA 아래 뒤 (U +-655) 및 아랍어 KASRA (U + 0650). 두 번째 텍스트 요소가 아랍어 문자 그 (U + 0647) 아랍어 FATHA 옵니다 (U +-64E). 세 번째 텍스트 요소가 아랍어 LETTTER BEH (U + 0628) 아랍어 DAMMATAN (U + 064 C) 나옵니다.

  • strSurrogates를 3 개의 서로게이트 쌍을 포함 하는 문자열 변수인: 그리스어 ACROPHONIC 5 재능 (U + 10148)에서 보충 Multilingual Plane 개인 사용자 영역에서 U + F1001 고 보충 표의 평면에서 U + 20026 합니다. 각 문자의 utf-16 인코딩을 한 뒤에 하위 서로게이트가 high surrogate로 구성 된 서로게이트 쌍입니다.

각 문자열에서 한 번 구문 분석 되는 ParseCombiningCharacters 메서드 및 다음 기준는 GetTextElementEnumerator 메서드. 두 메서드는 제대로 두 문자열의 텍스트 요소를 구문 분석 하 고 구문 분석 작업의 결과 표시 합니다.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      // The Unicode code points specify Arabic base characters and 
      // combining character sequences.
      string strCombining = "\u0627\u0655\u0650\u064A\u0647\u064E" +
                            "\u0627\u0628\u064C";

      // The Unicode code points specify private surrogate pairs.
      string strSurrogates = Char.ConvertFromUtf32(0x10148) +
                             Char.ConvertFromUtf32(0x20026) + "a" +
                             Char.ConvertFromUtf32(0xF1001);

      EnumerateTextElements(strCombining);
      EnumerateTextElements(strSurrogates);
   }

   public static void EnumerateTextElements(string str)
   {
      // Get the Enumerator.
      TextElementEnumerator teEnum = null;      

      // Parse the string using the ParseCombiningCharacters method.
      Console.WriteLine("\nParsing with ParseCombiningCharacters:");
      int[] teIndices = StringInfo.ParseCombiningCharacters(str);

      for (int i = 0; i < teIndices.Length; i++) {
         if (i < teIndices.Length - 1)
            Console.WriteLine("Text Element {0} ({1}..{2})= {3}", i, 
               teIndices[i], teIndices[i + 1] - 1, 
               ShowHexValues(str.Substring(teIndices[i], teIndices[i + 1] - 
                             teIndices[i])));
         else
            Console.WriteLine("Text Element {0} ({1}..{2})= {3}", i, 
               teIndices[i], str.Length - 1, 
               ShowHexValues(str.Substring(teIndices[i])));
      }
      Console.WriteLine();

      // Parse the string with the GetTextElementEnumerator method.
      Console.WriteLine("Parsing with TextElementEnumerator:");
      teEnum = StringInfo.GetTextElementEnumerator(str);

      int teCount = - 1;

      while (teEnum.MoveNext()) {
         // Displays the current element.
         // Both GetTextElement() and Current retrieve the current
         // text element. The latter returns it as an Object.
         teCount++;
         Console.WriteLine("Text Element {0} ({1}..{2})= {3}", teCount, 
            teEnum.ElementIndex, teEnum.ElementIndex + 
            teEnum.GetTextElement().Length - 1, ShowHexValues((string)(teEnum.Current)));
      }
   }

   private static string ShowHexValues(string s)
   {
      string hexString = "";
      foreach (var ch in s)
         hexString += String.Format("{0:X4} ", Convert.ToUInt16(ch));

      return hexString;
   }
}
// The example displays the following output:
//       Parsing with ParseCombiningCharacters:
//       Text Element 0 (0..2)= 0627 0655 0650
//       Text Element 1 (3..3)= 064A
//       Text Element 2 (4..5)= 0647 064E
//       Text Element 3 (6..6)= 0627
//       Text Element 4 (7..8)= 0628 064C
//       
//       Parsing with TextElementEnumerator:
//       Text Element 0 (0..2)= 0627 0655 0650
//       Text Element 1 (3..3)= 064A
//       Text Element 2 (4..5)= 0647 064E
//       Text Element 3 (6..6)= 0627
//       Text Element 4 (7..8)= 0628 064C
//       
//       Parsing with ParseCombiningCharacters:
//       Text Element 0 (0..1)= D800 DD48
//       Text Element 1 (2..3)= D840 DC26
//       Text Element 2 (4..4)= 0061
//       Text Element 3 (5..6)= DB84 DC01
//       
//       Parsing with TextElementEnumerator:
//       Text Element 0 (0..1)= D800 DD48
//       Text Element 1 (2..3)= D840 DC26
//       Text Element 2 (4..4)= 0061
//       Text Element 3 (5..6)= DB84 DC01

호출자 참고 사항:

메서드를 내부적으로 StringInfo 의 메서드를 호출 하는 클래스는 CharUnicodeInfo 문자 범주를 확인 하려면 클래스입니다. 부터는 .NET Framework 4.6.2, 문자 분류 기반 The Unicode Standard, Version 8.0.0합니다. 에 대 한는 .NET Framework 4 통해는 .NET Framework 4.6.1를 기반으로 The Unicode Standard, Version 6.3.0합니다.

사용 하는 방법을 보여 주는이 예제는 GetTextElementEnumeratorParseCombiningCharacters 의 메서드는 StringInfo 서로게이트 및 결합 문자를 포함 하는 문자열을 조작 하는 클래스입니다.

using System;
using System.Text;
using System.Globalization;

public sealed class App {
   static void Main() {
      // The string below contains combining characters.
      String s = "a\u0304\u0308bc\u0327";

      // Show each 'character' in the string.
      EnumTextElements(s);

      // Show the index in the string where each 'character' starts.
      EnumTextElementIndexes(s);
   }

   // Show how to enumerate each real character (honoring surrogates) in a string.
   static void EnumTextElements(String s) {
      // This StringBuilder holds the output results.
      StringBuilder sb = new StringBuilder();

      // Use the enumerator returned from GetTextElementEnumerator 
      // method to examine each real character.
      TextElementEnumerator charEnum = StringInfo.GetTextElementEnumerator(s);
      while (charEnum.MoveNext()) {
         sb.AppendFormat(
           "Character at index {0} is '{1}'{2}",
           charEnum.ElementIndex, charEnum.GetTextElement(),
           Environment.NewLine);
      }

      // Show the results.
      Console.WriteLine("Result of GetTextElementEnumerator:");
      Console.WriteLine(sb);
   }

   // Show how to discover the index of each real character (honoring surrogates) in a string.
   static void EnumTextElementIndexes(String s) {
      // This StringBuilder holds the output results.
      StringBuilder sb = new StringBuilder();

      // Use the ParseCombiningCharacters method to 
      // get the index of each real character in the string.
      Int32[] textElemIndex = StringInfo.ParseCombiningCharacters(s);

      // Iterate through each real character showing the character and the index where it was found.
      for (Int32 i = 0; i < textElemIndex.Length; i++) {
         sb.AppendFormat(
            "Character {0} starts at index {1}{2}",
            i, textElemIndex[i], Environment.NewLine);
      }

      // Show the results.
      Console.WriteLine("Result of ParseCombiningCharacters:");
      Console.WriteLine(sb);
   }
}

// This code produces the following output.
//
// Result of GetTextElementEnumerator:
// Character at index 0 is 'a-"'
// Character at index 3 is 'b'
// Character at index 4 is 'c,'
// 
// Result of ParseCombiningCharacters:
// Character 0 starts at index 0
// Character 1 starts at index 3
// Character 2 starts at index 4

유니버설 Windows 플랫폼
8 이후 사용 가능
.NET Framework
1.1 이후 사용 가능
이식 가능한 클래스 라이브러리
이식 가능한 .NET 플랫폼 에서 지원됨
Silverlight
2.0 이후 사용 가능
Windows Phone Silverlight
7.0 이후 사용 가능
Windows Phone
8.1 이후 사용 가능

이 형식의 모든 public static(Visual Basic의 공유 Visual Basic의 경우) 멤버는 스레드로부터 안전합니다. 인스턴스 멤버는 스레드로부터의 안전이 보장되지 않습니다.

맨 위로 이동
표시: