Приложения для Windows
Данная статья переведена автоматически. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст. Дополнительные сведения.
Перевод
Текст оригинала
Информация
Запрошенная вами тема показана ниже. Однако эта тема не включена в библиотеку.

StringInfo.ParseCombiningCharacters - метод (String)

 

Возвращает индексы каждого базового знака, старший символ-заместитель или знак элемента управления в пределах указанной строки.

Пространство имен:   System.Globalization
Сборка:  mscorlib (в mscorlib.dll)

public static int[] ParseCombiningCharacters(
	string str
)

Параметры

str

Строка для поиска.

Возвращаемое значение

Type: System.Int32[]

Массив целочисленных чисел, который содержит отсчитываемые с нуля индексы каждого базового знака, старший символ-заместитель или знак элемента управления в пределах указанной строки.

Exception Condition
ArgumentNullException

Параметр str имеет значение null.

Стандарт Юникод определяет пару символов-заместителей как кодовое представление знака для одного обобщенного знака, состоящего из двух частей кода, где первая и вторая части пары являются соответственно старшим и младшим символами-заместителями.Старший символ-заместитель является кодом знака в Юникоде, который изменяется в пределах от D800 до DBFF, а младший символ-заместитель является кодом знака в Юникоде, изменяющимся в пределах от DC00 до DFFF.

Знак элемента управления — это знак, значение которого в Юникоде — 007F или находится в диапазоне от 0000 до 001F или от 0080 до 009F.

Платформа .NET Framework определяет текстовый элемент как единицу текста, отображаемую одним знаком, или графему.Текстовый элемент может быть базовым символом, парой символов-заместителей или последовательностью несамостоятельных знаков. Стандарт Юникод определяет последовательность несамостоятельных знаков, как сочетание базового символа и одного или более несамостоятельных знаков.Пара символов-заместителей может представлять базовый или присоединяемый знак.

Если последовательность присоединяемых знаков недопустима, также возвращается каждый присоединяемый знак в этой последовательности.

Каждый индекс в полученном массиве является началом текстового элемента; то есть он является индексом базового знака или старшим символом-заместителем.

Длина каждого элемента легко вычисляется как разница между последовательными индексами.Длина массива всегда будет меньше или равна длине строки.Например, если дана строка "\u4f00\u302a\ud800\udc00\u4f01", этот метод возвращает индексы 0, 2 и 4.

Начиная с версии платформы 2.0 .NET Framework, метод SubstringByTextElements и свойство LengthInTextElements предоставляют возможность простого использования реализации функциональных возможностей, предлагаемых методом ParseCombiningCharacters.

В следующем примере кода демонстрируется вызов метода ParseCombiningCharacters.Данный пример кода является частью большого примера, приведенного в описании класса 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

Universal Windows Platform
Доступно с 4.5
.NET Framework
Доступно с 1.1
Portable Class Library
Поддерживается в версиях: portable .NET platforms
Silverlight
Доступно с 2.0
Windows Phone Silverlight
Доступно с 7.0
Windows Phone
Доступно с 8.1
Вернуться в начало
Показ:
© 2016 Microsoft