CharUnicodeInfo Класс

Определение

Получает сведения о символе Юникода. Этот класс не наследуется.

public ref class CharUnicodeInfo abstract sealed
public ref class CharUnicodeInfo sealed
public static class CharUnicodeInfo
public sealed class CharUnicodeInfo
type CharUnicodeInfo = class
Public Class CharUnicodeInfo
Public NotInheritable Class CharUnicodeInfo
Наследование
CharUnicodeInfo

Примеры

В следующем примере кода показаны значения, возвращаемые каждым методом для разных типов символов.

using namespace System;
using namespace System::Globalization;
void PrintProperties( Char c );
int main()
{
   Console::WriteLine( "                                        c  Num   Dig   Dec   UnicodeCategory" );
   Console::Write( "U+0061 LATIN SMALL LETTER A            " );
   PrintProperties( L'a' );
   Console::Write( "U+0393 GREEK CAPITAL LETTER GAMMA      " );
   PrintProperties( L'\u0393' );
   Console::Write( "U+0039 DIGIT NINE                      " );
   PrintProperties( L'9' );
   Console::Write( "U+00B2 SUPERSCRIPT TWO                 " );
   PrintProperties( L'\u00B2' );
   Console::Write( "U+00BC VULGAR FRACTION ONE QUARTER     " );
   PrintProperties( L'\u00BC' );
   Console::Write( "U+0BEF TAMIL DIGIT NINE                " );
   PrintProperties( L'\u0BEF' );
   Console::Write( "U+0BF0 TAMIL NUMBER TEN                " );
   PrintProperties( L'\u0BF0' );
   Console::Write( "U+0F33 TIBETAN DIGIT HALF ZERO         " );
   PrintProperties( L'\u0F33' );
   Console::Write( "U+2788 CIRCLED SANS-SERIF DIGIT NINE   " );
   PrintProperties( L'\u2788' );
}

void PrintProperties( Char c )
{
   Console::Write( " {0,-3}", c );
   Console::Write( " {0,-5}", CharUnicodeInfo::GetNumericValue( c ) );
   Console::Write( " {0,-5}", CharUnicodeInfo::GetDigitValue( c ) );
   Console::Write( " {0,-5}", CharUnicodeInfo::GetDecimalDigitValue( c ) );
   Console::WriteLine( "{0}", CharUnicodeInfo::GetUnicodeCategory( c ) );
}

/*
This code produces the following output.  Some characters might not display at the console.

                                        c  Num   Dig   Dec   UnicodeCategory
U+0061 LATIN SMALL LETTER A             a   -1    -1    -1   LowercaseLetter
U+0393 GREEK CAPITAL LETTER GAMMA       Γ   -1    -1    -1   UppercaseLetter
U+0039 DIGIT NINE                       9   9     9     9    DecimalDigitNumber
U+00B2 SUPERSCRIPT TWO                  ²   2     2     -1   OtherNumber
U+00BC VULGAR FRACTION ONE QUARTER      ¼   0.25  -1    -1   OtherNumber
U+0BEF TAMIL DIGIT NINE                 ௯   9     9     9    DecimalDigitNumber
U+0BF0 TAMIL NUMBER TEN                 ௰   10    -1    -1   OtherNumber
U+0F33 TIBETAN DIGIT HALF ZERO          ༳   -0.5  -1    -1   OtherNumber
U+2788 CIRCLED SANS-SERIF DIGIT NINE    ➈   9     9     -1   OtherNumber

*/
using System;
using System.Globalization;

public class SamplesCharUnicodeInfo  {

   public static void Main()  {

      Console.WriteLine( "                                        c  Num   Dig   Dec   UnicodeCategory" );

      Console.Write( "U+0061 LATIN SMALL LETTER A            " );
      PrintProperties( 'a' );

      Console.Write( "U+0393 GREEK CAPITAL LETTER GAMMA      " );
      PrintProperties( '\u0393' );

      Console.Write( "U+0039 DIGIT NINE                      " );
      PrintProperties( '9' );

      Console.Write( "U+00B2 SUPERSCRIPT TWO                 " );
      PrintProperties( '\u00B2' );

      Console.Write( "U+00BC VULGAR FRACTION ONE QUARTER     " );
      PrintProperties( '\u00BC' );

      Console.Write( "U+0BEF TAMIL DIGIT NINE                " );
      PrintProperties( '\u0BEF' );

      Console.Write( "U+0BF0 TAMIL NUMBER TEN                " );
      PrintProperties( '\u0BF0' );

      Console.Write( "U+0F33 TIBETAN DIGIT HALF ZERO         " );
      PrintProperties( '\u0F33' );

      Console.Write( "U+2788 CIRCLED SANS-SERIF DIGIT NINE   " );
      PrintProperties( '\u2788' );
   }

   public static void PrintProperties( char c )  {
      Console.Write( " {0,-3}", c );
      Console.Write( " {0,-5}", CharUnicodeInfo.GetNumericValue( c ) );
      Console.Write( " {0,-5}", CharUnicodeInfo.GetDigitValue( c ) );
      Console.Write( " {0,-5}", CharUnicodeInfo.GetDecimalDigitValue( c ) );
      Console.WriteLine( "{0}", CharUnicodeInfo.GetUnicodeCategory( c ) );
   }
}


/*
This code produces the following output.  Some characters might not display at the console.

                                        c  Num   Dig   Dec   UnicodeCategory
U+0061 LATIN SMALL LETTER A             a   -1    -1    -1   LowercaseLetter
U+0393 GREEK CAPITAL LETTER GAMMA       Γ   -1    -1    -1   UppercaseLetter
U+0039 DIGIT NINE                       9   9     9     9    DecimalDigitNumber
U+00B2 SUPERSCRIPT TWO                  ²   2     2     -1   OtherNumber
U+00BC VULGAR FRACTION ONE QUARTER      ¼   0.25  -1    -1   OtherNumber
U+0BEF TAMIL DIGIT NINE                 ௯   9     9     9    DecimalDigitNumber
U+0BF0 TAMIL NUMBER TEN                 ௰   10    -1    -1   OtherNumber
U+0F33 TIBETAN DIGIT HALF ZERO          ༳   -0.5  -1    -1   OtherNumber
U+2788 CIRCLED SANS-SERIF DIGIT NINE    ➈   9     9     -1   OtherNumber

*/
Imports System.Globalization

Public Class SamplesCharUnicodeInfo

   Public Shared Sub Main()

      Console.WriteLine("                                        c  Num   Dig   Dec   UnicodeCategory")

      Console.Write("U+0061 LATIN SMALL LETTER A            ")
      PrintProperties("a"c)

      Console.Write("U+0393 GREEK CAPITAL LETTER GAMMA      ")
      PrintProperties(ChrW(&H0393))

      Console.Write("U+0039 DIGIT NINE                      ")
      PrintProperties("9"c)

      Console.Write("U+00B2 SUPERSCRIPT TWO                 ")
      PrintProperties(ChrW(&H00B2))

      Console.Write("U+00BC VULGAR FRACTION ONE QUARTER     ")
      PrintProperties(ChrW(&H00BC))

      Console.Write("U+0BEF TAMIL DIGIT NINE                ")
      PrintProperties(ChrW(&H0BEF))

      Console.Write("U+0BF0 TAMIL NUMBER TEN                ")
      PrintProperties(ChrW(&H0BF0))

      Console.Write("U+0F33 TIBETAN DIGIT HALF ZERO         ")
      PrintProperties(ChrW(&H0F33))

      Console.Write("U+2788 CIRCLED SANS-SERIF DIGIT NINE   ")
      PrintProperties(ChrW(&H2788))

   End Sub

   Public Shared Sub PrintProperties(c As Char)
      Console.Write(" {0,-3}", c)
      Console.Write(" {0,-5}", CharUnicodeInfo.GetNumericValue(c))
      Console.Write(" {0,-5}", CharUnicodeInfo.GetDigitValue(c))
      Console.Write(" {0,-5}", CharUnicodeInfo.GetDecimalDigitValue(c))
      Console.WriteLine("{0}", CharUnicodeInfo.GetUnicodeCategory(c))
   End Sub

End Class


'This code produces the following output.  Some characters might not display at the console.
'
'                                        c  Num   Dig   Dec   UnicodeCategory
'U+0061 LATIN SMALL LETTER A             a   -1    -1    -1   LowercaseLetter
'U+0393 GREEK CAPITAL LETTER GAMMA       Γ   -1    -1    -1   UppercaseLetter
'U+0039 DIGIT NINE                       9   9     9     9    DecimalDigitNumber
'U+00B2 SUPERSCRIPT TWO                  ²   2     2     -1   OtherNumber
'U+00BC VULGAR FRACTION ONE QUARTER      ¼   0.25  -1    -1   OtherNumber
'U+0BEF TAMIL DIGIT NINE                 ௯   9     9     9    DecimalDigitNumber
'U+0BF0 TAMIL NUMBER TEN                 ௰   10    -1    -1   OtherNumber
'U+0F33 TIBETAN DIGIT HALF ZERO          ༳   -0.5  -1    -1   OtherNumber
'U+2788 CIRCLED SANS-SERIF DIGIT NINE    ➈   9     9     -1   OtherNumber

Комментарии

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

CharUnicodeInfo Используйте класс для получения UnicodeCategory значения для определенного символа. Класс CharUnicodeInfo определяет методы, возвращающие следующие значения символов Юникода:

  • Конкретная категория, к которой принадлежит символ или суррогатная пара. Возвращаемое значение является членом перечисления UnicodeCategory .

  • Числовое значение. Применяется только к числовым символам, включая дроби, подстроки, надстрочные знаки, римские числовые числа, числовые знаки валют, закрепленные числа и цифры, относящиеся к скрипту.

  • Значение цифры. Применяется к числовым символам, которые можно объединить с другими числовыми символами для представления целого числа в системе нумеров.

  • Десятичное значение цифры. Применяется только к символам, представляющим десятичные цифры в системе десятичных (базовых 10). Десятичная цифра может быть одной из десяти цифр от нуля до девяти. Эти символы являются членами UnicodeCategory.DecimalDigitNumber категории.

Кроме того, CharUnicodeInfo класс используется внутри ряда других типов и методов .NET, основанных на классификации символов. Сюда входит следующее.

  • Класс StringInfo , который работает с текстовыми элементами вместо отдельных символов в строке.

  • Перегрузки Char.GetUnicodeCategory метода, определяющие категорию, к которой принадлежит символ или суррогатная пара.

  • Классы символов, распознаваемые ,Regex. Обработчик регулярных выражений NET.

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

  • Объект Char не всегда соответствует одному символу. Char Хотя тип представляет одно 16-разрядное значение, некоторые символы (например, кластеры grapheme и суррогатные пары) состоят из двух или более единиц кода UTF-16. Дополнительные сведения см. в разделе "Объекты Char и символы Юникода" в String классе.

  • Понятие "символ" также является гибким. Символ часто считается глифом, но для многих глифов требуется несколько кодовых точек. Например, ä может быть представлена двумя кодовых точками ("a" плюс U+0308, которая является объединением диаереза), или одной кодовой точкой ("ä" или U+00A4). Некоторые языки имеют много букв, символов и глифов, требующих нескольких кодовых точек, что может привести к путанице в представлении лингвистического содержимого. Например, есть ΰ (U+03B0, греческий небольшой буквы upsilon с dialytika и tonos), но нет эквивалентной прописной буквы. Верхнее значение просто извлекает исходное значение.

Примечания для тех, кто вызывает этот метод

Распознанные символы и определенные категории, к которым они относятся, определяются стандартом Юникода и могут меняться с одной версии стандарта Юникода на другую. Классификация символов в определенной версии платформа .NET Framework основана на одной версии Стандарта Юникода независимо от базовой операционной системы, в которой выполняется платформа .NET Framework. В следующей таблице перечислены версии платформа .NET Framework с платформа .NET Framework 4 и версии Стандарта Юникода, используемые для классификации символов.

| платформа .NET Framework версии | | | стандартной версии Юникода - | - | | платформа .NET Framework 4 | 5.0.0 | | платформа .NET Framework 4.5 | 5.0.0 | | платформа .NET Framework 4.5.1 | 5.0.0 | | платформа .NET Framework 4.5.2 | 5.0.0 | | платформа .NET Framework 4.6 | 6.3.0 | | платформа .NET Framework 4.6.1 | 6.3.0 | | платформа .NET Framework 4.6.2 | 8.0.0 |

Каждая версия стандарта Юникода содержит сведения об изменениях в базе данных символов Юникода с предыдущей версии. База данных символов Юникода используется классом CharUnicodeInfo для классификации символов.

Методы

GetDecimalDigitValue(Char)

Получает десятичное цифровое значение указанного числового символа.

GetDecimalDigitValue(String, Int32)

Получает десятичное цифровое значение числового символа на месте указанного индекса указанной строки.

GetDigitValue(Char)

Получает цифровое значение указанного числового символа.

GetDigitValue(String, Int32)

Получает цифровое значение числового символа на месте указанного индекса указанной строки.

GetNumericValue(Char)

Получает числовое значение, связанное с указанным символом.

GetNumericValue(String, Int32)

Получает числовое значение, связанное с символом, расположенным по указанному индексу в указанной строке.

GetUnicodeCategory(Char)

Получает категорию Юникода, относящуюся к указанному символу.

GetUnicodeCategory(Int32)

Получает категорию Юникода, относящуюся к указанному символу.

GetUnicodeCategory(String, Int32)

Получает категорию Юникода, относящуюся к символу, расположенному по заданному индексу в заданной строке.

Применяется к

См. также раздел