이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

StringInfo 클래스

문자열을 텍스트 요소로 분리한 다음 이 텍스트 요소를 반복하는 기능을 제공합니다.

System.Object
  System.Globalization.StringInfo

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

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

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

  이름설명
Public 메서드XNA Framework에서 지원이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원StringInfo() StringInfo 클래스의 새 인스턴스를 초기화합니다.
Public 메서드XNA Framework에서 지원이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원StringInfo(String) StringInfo 클래스의 새 인스턴스를 지정된 문자열로 초기화합니다.
위쪽

  이름설명
Public 속성XNA Framework에서 지원이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원LengthInTextElements현재 StringInfo 개체의 텍스트 요소 수를 가져옵니다.
Public 속성XNA Framework에서 지원이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원String현재 StringInfo 개체의 값을 가져오거나 설정합니다.
위쪽

  이름설명
Public 메서드XNA Framework에서 지원이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원Equals현재 StringInfo 개체가 지정된 개체와 같은지 여부를 나타냅니다. (Object.Equals(Object)을(를) 재정의함)
Protected 메서드XNA Framework에서 지원이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원Finalize 개체가 가비지 수집자에서 회수되기 전에, 해당 개체에서 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드XNA Framework에서 지원이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원GetHashCode현재 StringInfo 개체의 값에 대한 해시 코드를 계산합니다. (Object.GetHashCode()을(를) 재정의함)
Public 메서드정적 멤버XNA Framework에서 지원이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원GetNextTextElement(String)지정된 문자열에 있는 첫째 텍스트 요소를 가져옵니다.
Public 메서드정적 멤버XNA Framework에서 지원이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원GetNextTextElement(String, Int32)지정된 문자열의 지정된 인덱스에 있는 텍스트 요소를 가져옵니다.
Public 메서드정적 멤버XNA Framework에서 지원이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원GetTextElementEnumerator(String)전체 문자열의 텍스트 요소를 반복하는 열거자를 반환합니다.
Public 메서드정적 멤버XNA Framework에서 지원이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원GetTextElementEnumerator(String, Int32)지정된 인덱스에서 시작하여 문자열의 텍스트 요소를 반복하는 열거자를 반환합니다.
Public 메서드XNA Framework에서 지원이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Protected 메서드XNA Framework에서 지원이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드정적 멤버XNA Framework에서 지원이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원ParseCombiningCharacters지정된 문자열 내에 있는 각 기본 문자, 상위 서로게이트 또는 제어 문자를 반환합니다.
Public 메서드SubstringByTextElements(Int32)현재 StringInfo 개체에서, 지정된 텍스트 요소에서 시작하여 마지막 텍스트 요소까지 계속되는 텍스트 요소의 부분 문자열을 검색합니다.
Public 메서드SubstringByTextElements(Int32, Int32)현재 StringInfo 개체에서, 지정된 텍스트 요소에서 시작하여 지정된 수의 텍스트 요소까지 계속되는 텍스트 요소의 부분 문자열을 가져옵니다.
Public 메서드XNA Framework에서 지원이식 가능한 클래스 라이브러리에서 지원Windows 스토어 앱용 .NET에서 지원ToString현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)
위쪽

.NET Framework는 텍스트 요소를 단일 문자(서기소)로 표시되는 텍스트 단위로 정의합니다. 텍스트 요소는 기본 문자, 서로게이트 쌍 또는 조합 문자 시퀀스가 될 수 있습니다. Unicode Standard에서는 두 개의 코드 단위 배열로 이루어진 단일 추상 문자에 대해 코딩된 문자 표시로써의 서로게이트 쌍에 대해 정의하며, 그 쌍에서 첫 번째 단위는 high surrogate 그리고 두 번째는 low surrogate입니다. 유니코드 표준은 하나의 기본 문자와 하나 이상의 결합 문자가 조합된 문자 시퀀스를 정의합니다. 서로게이트 쌍은 기본 문자나 조합 문자를 나타낼 수 있습니다.

StringInfo 클래스를 사용하여 개인적인 Char 개체 보다 일련의 텍스트 요소로써의 문자열을 작업할 수 있도록 합니다. 두 가지 방법으로 문자열의 각 텍스트 요소를 사용하여 작업할 수 있습니다.:

다음 예제에서는 문자열의 텍스트 요소를 사용하여 작업의 두 가지 방법을 모두 보여 줍니다. 두 문자열을 만듭니다.:

  • 다수의 Char 개체와 함께 세개의 텍스트 요소를 포함하는 아랍어 문자의 문자열 strCombining 첫 번째 텍스트 요소는 아랍어 HAMZA 아래 (U+-655) 및 아랍어 KASRA (U+0650)를 따르는 기본 아랍어 문자 ALEF (U +-627)입니다. 두 번째 텍스트 요소는 아랍어 FATHA (U+-64E)를 따르는 아랍어 문자 HEH (U+0647)입니다. 세 번째 텍스트 요소는 아랍어 DAMMATAN (U+064C) 뒤를 따르는 아랍어 LETTTER BEH (U+0628)입니다.

  • strSurrogates, 3 개의 서로게이트 쌍을 포함 하는 문자열: 보충 다국어 평면으로부터 그리스 ACROPHONIC FIVE TALENTS (U+10148), 보조 표의 U+20026, 개인 사용자 영역에서의 U+F1001 입니다. 각 문자의 UFT-16 인코딩은 하위 서로게이트를 따르는 상위 서로게이트를 구성하는 서로게이트 쌍입니다.

각 문자열은 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 클래스의 GetTextElementEnumeratorParseCombiningCharacters 메서드를 사용하여 서로게이트 및 조합 문자가 포함된 문자열을 조작하는 방법을 보여 줍니다.


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


.NET Framework

4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

이식 가능한 클래스 라이브러리

이식 가능한 클래스 라이브러리에서 지원

Windows 스토어 앱용 .NET

Windows 8에서 지원

Windows Phone 앱용 .NET

Windows Phone 8, Silverlight 8.1에서 지원

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(서버 코어 역할은 지원되지 않음), Windows Server 2008 R2(서버 코어 역할은 SP1 이상에서 지원, Itanium은 지원되지 않음)

.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

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

커뮤니티 추가 항목

표시:
© 2015 Microsoft