CharUnicodeInfo Classe

Definição

Recupera informação sobre um carácter Unicode. Esta 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 seguinte mostra os valores devolvidos por cada método para diferentes tipos de caracteres.

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

Observações

O Padrão Unicode define várias categorias de caracteres Unicode. Por exemplo, um carácter pode ser categorizado como uma letra maiúscula, uma letra minúscula, um número decimal, um número de letra, um separador de parágrafo, um símbolo matemático ou um símbolo de moeda. A sua aplicação pode usar a categoria de carácter para governar operações baseadas em strings, como analisar ou extrair substrings 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 uma personagem específica. A CharUnicodeInfo classe define métodos que retornam os seguintes valores de caracteres Unicode:

  • A categoria específica a que pertence um personagem ou par de substitutos. O valor devolvido é um membro da UnicodeCategory enumeração.

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

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

  • Valor em dígitos decimais. Aplica-se apenas 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. Estas personagens pertencem à UnicodeCategory.DecimalDigitNumber categoria.

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

  • A StringInfo classe, que trabalha com elementos textuais em vez de caracteres individuais numa cadeia.

  • As sobrecargas do Char.GetUnicodeCategory método, que determinam a categoria a que pertence um par de caracteres ou substitutos.

  • As classes caracteres reconhecidas pelo Regex, o motor de expressão regular da .NET.

Ao utilizar esta classe nas suas aplicações, tenha em conta as seguintes considerações de programação para a utilização do Char tipo. O tipo pode ser difícil de usar, e as cadeias são geralmente preferíveis para representar conteúdo linguístico.

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

  • A noção de "personagem" também é flexível. Um carácter é frequentemente considerado um glifo, mas muitos glifos requerem múltiplos pontos de código. Por exemplo, ä pode ser representado por dois pontos de código ("a" mais U+0308, que é a diaerese combinante), ou por um único ponto de código ("ä" ou U+00A4). Algumas línguas têm muitas letras, caracteres e glifos que requerem múltiplos pontos de código, o que pode causar confusão na representação do conteúdo linguístico. Por exemplo, existe um ΰ (U+03B0, letra grega minúscula upsilon com diálita e tonos), mas não existe uma letra maiúscula equivalente. Colocar tal valor em maiúsculas simplesmente recupera o valor original.

Notas para Chamadores

Os caracteres reconhecidos e as categorias específicas a que 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 numa determinada versão do .NET Framework baseia-se numa única versão do Padrão Unicode, independentemente do sistema operativo subjacente onde o .NET Framework está a correr. A tabela seguinte lista as versões do .NET Framework desde o .NET Framework 4 e as versões do Unicode Standard 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 na base de dados de caracteres Unicode desde a versão anterior. A base de dados de caracteres Unicode é usada pela CharUnicodeInfo classe para categorizar caracteres.

Métodos

Name Description
GetDecimalDigitValue(Char)

Obtém o valor do dígito decimal do carácter numérico especificado.

GetDecimalDigitValue(String, Int32)

Obtém o valor do dígito decimal do carácter numérico no índice especificado da cadeia especificada.

GetDigitValue(Char)

Obtém o valor do dígito do carácter numérico especificado.

GetDigitValue(String, Int32)

Obtém o valor do dígito do carácter numérico no índice especificado da cadeia especificada.

GetNumericValue(Char)

Obtém o valor numérico associado ao carácter especificado.

GetNumericValue(String, Int32)

Obtém o valor numérico associado ao carácter no índice especificado da cadeia especificada.

GetUnicodeCategory(Char)

Obtém a categoria Unicode do carácter especificado.

GetUnicodeCategory(Int32)

Obtém a categoria Unicode do carácter especificado.

GetUnicodeCategory(String, Int32)

Obtém a categoria Unicode do carácter no índice especificado da cadeia especificada.

Aplica-se a

Ver também