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 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 метода, определяющие категорию, к которой принадлежит символ или суррогатная пара.

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

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

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

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

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

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

Версия платформы .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)

Возвращает категорию Юникода символа по указанному индексу указанной строки.

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

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