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 caractere 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 par de caracteres ou substitutos. 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 cercados 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 decimais 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 .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 pertence um par de caracteres ou substitutos.

  • As classes de caractere 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 o 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 grafeme e pares alternativos) consistem em duas ou mais unidades de código UTF-16. Para obter mais informações, consulte "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). Algumas linguagens 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, upsilon de letras pequenas gregas com dialytika e tonos), mas não há nenhuma letra maiúscula equivalente. A maiúscula desse 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 baseia-se em uma única versão do Padrão Unicode, independentemente do sistema operacional subjacente no qual o .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.

| .NET Framework versão | | | de versão do Unicode Standard - | - | | .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