CharUnicodeInfo Classe

Definição

Recupera informações sobre um caractere Unicode. Essa classe não pode ser herdada.

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
Herança
CharUnicodeInfo

Exemplos

O exemplo de código a seguir mostra os valores retornados por cada método para diferentes tipos de caracteres.

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

Comentários

O Padrão Unicode define várias categorias de caracteres Unicode. Por exemplo, um caractere pode ser categorizado como uma letra maiúscula, uma letra minúscula, um número de dígito decimal, um número de letra, um separador de parágrafo, um símbolo matemático ou um símbolo de moeda. Seu aplicativo pode usar a categoria de caracteres para controlar operações baseadas em cadeia de caracteres, como analisar ou extrair subcadeia de caracteres com expressões regulares. A UnicodeCategory enumeração define as possíveis categorias de caracteres.

Use a CharUnicodeInfo classe para obter o UnicodeCategory valor de um caractere específico. A CharUnicodeInfo classe define métodos que retornam os seguintes valores de caractere Unicode:

  • A categoria específica à qual pertence um caractere ou par substituto. O valor retornado é um membro da UnicodeCategory enumeração .

  • Valor numérico. Aplica-se somente a caracteres numéricos, incluindo frações, subscritos, sobrescritos, numerais romanos, numeradores de moeda, números circundados e dígitos específicos do script.

  • Valor de dígito. Aplica-se a caracteres numéricos que podem ser combinados com outros caracteres numéricos para representar um número inteiro em um sistema de numeração.

  • Valor de dígito decimal. Aplica-se somente a caracteres que representam dígitos decimais no sistema decimal (base 10). Um dígito decimal pode ser um de dez dígitos, de zero a nove. Esses caracteres são membros da UnicodeCategory.DecimalDigitNumber categoria.

Além disso, a CharUnicodeInfo classe é usada internamente por vários outros tipos e métodos do .NET que dependem da classificação de caracteres. Elas incluem:

  • A StringInfo classe , que funciona com elementos textuais em vez de caracteres únicos em uma cadeia de caracteres.

  • As sobrecargas do Char.GetUnicodeCategory método , que determinam a categoria à qual um caractere ou par substituto pertence.

  • As classes de caracteres reconhecidas por Regex, . Mecanismo de expressão regular do NET.

Ao usar essa classe em seus aplicativos, tenha em mente as seguintes considerações de programação para usar o Char tipo. O tipo pode ser difícil de usar e as cadeias de caracteres geralmente são preferíveis para representar conteúdo linguístico.

  • Um Char objeto nem sempre corresponde a um único caractere. Embora o Char tipo represente um único valor de 16 bits, alguns caracteres (como clusters de grafema e pares alternativos) consistem em duas ou mais unidades de código UTF-16. Para obter mais informações, confira "Objetos Char e Caracteres Unicode" na String classe .

  • A noção de um "caractere" também é flexível. Um caractere geralmente é considerado como um glifo, mas muitos glifos exigem vários pontos de código. Por exemplo, ä pode ser representada por dois pontos de código ("a" mais U+0308, que é a diaerese de combinação) ou por um único ponto de código ("ä" ou U+00A4). Alguns idiomas têm muitas letras, caracteres e glifos que exigem vários pontos de código, o que pode causar confusão na representação de conteúdo linguístico. Por exemplo, há um ΰ (U+03B0, letra pequena grega upsilon com dialytika e tonos), mas não há letra maiúscula equivalente. Em maiúsculas, esse valor simplesmente recupera o valor original.

Notas aos Chamadores

Os caracteres reconhecidos e as categorias específicas às quais pertencem são definidos pelo padrão Unicode e podem mudar de uma versão do Padrão Unicode para outra. A categorização de caracteres em uma versão específica do .NET Framework é baseada em uma única versão do Padrão Unicode, independentemente do sistema operacional subjacente no qual .NET Framework está em execução. A tabela a seguir lista versões de .NET Framework desde .NET Framework 4 e as versões do Padrão Unicode usadas para classificar caracteres.

Versão do .NET Framework Versão Padrão Unicode
.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

Cada versão do padrão Unicode inclui informações sobre alterações no banco de dados de caracteres Unicode desde a versão anterior. O banco de dados de caracteres Unicode é usado pela CharUnicodeInfo classe para categorizar caracteres.

Métodos

GetDecimalDigitValue(Char)

Obtém o valor do dígito decimal do caractere numérico especificado.

GetDecimalDigitValue(String, Int32)

Obtém o valor do dígito decimal do caractere numérico no índice especificado da cadeia de caracteres especificada.

GetDigitValue(Char)

Obtém o valor do dígito do caractere numérico especificado.

GetDigitValue(String, Int32)

Obtém o valor do dígito do caractere numérico no índice especificado da cadeia de caracteres especificada.

GetNumericValue(Char)

Obtém o valor numérico associado ao caractere especificado.

GetNumericValue(String, Int32)

Obtém o valor numérico associado ao caractere no índice especificado da cadeia de caracteres especificada.

GetUnicodeCategory(Char)

Obtém a categoria Unicode do caractere especificado.

GetUnicodeCategory(Int32)

Obtém a categoria Unicode do caractere especificado.

GetUnicodeCategory(String, Int32)

Obtém a categoria Unicode do caractere no índice especificado da cadeia de caracteres especificada.

Aplica-se a

Confira também