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 .

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

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

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

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

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

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

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

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

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

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

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

Распознанные символы и определенные категории, к которым они относятся, определяются стандартом Юникода и могут меняться с одной версии стандарта Юникода на другую. Классификация символов в конкретной версии платформа .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)

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

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

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