CharUnicodeInfo Clase

Definición

Recupera la información sobre un carácter Unicode. Esta clase no puede heredarse.

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
Herencia
CharUnicodeInfo

Ejemplos

En el ejemplo de código siguiente se muestran los valores devueltos por cada método para distintos 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

Comentarios

El estándar Unicode define una serie de categorías de caracteres Unicode. Por ejemplo, un carácter podría clasificarse como una letra mayúscula, una letra minúscula, un número de dígito decimal, un número de letra, un separador de párrafos, un símbolo matemático o un símbolo de moneda. La aplicación puede usar la categoría de caracteres para controlar las operaciones basadas en cadenas, como analizar o extraer subcadenas con expresiones regulares. La UnicodeCategory enumeración define las categorías de caracteres posibles.

Utilice la CharUnicodeInfo clase para obtener el UnicodeCategory valor de un carácter específico. La CharUnicodeInfo clase define métodos que devuelven los siguientes valores de caracteres Unicode:

  • Categoría específica a la que pertenece un par de caracteres o suplentes. El valor devuelto es un miembro de la UnicodeCategory enumeración .

  • Valor numérico. Solo se aplica a caracteres numéricos, incluidas fracciones, subíndices, superíndices, números romanos, numeradores de moneda, números encirculación y dígitos específicos del script.

  • Valor de dígito. Se aplica a caracteres numéricos que se pueden combinar con otros caracteres numéricos para representar un número entero en un sistema de numeración.

  • Valor de dígito decimal. Solo se aplica a caracteres que representan dígitos decimales en el sistema decimal (base 10). Un dígito decimal puede ser uno de diez dígitos, de cero a nueve. Estos caracteres son miembros de la UnicodeCategory.DecimalDigitNumber categoría.

Además, la CharUnicodeInfo clase se usa internamente por varios otros tipos y métodos de .NET que se basan en la clasificación de caracteres. Se incluyen los siguientes:

  • La StringInfo clase , que funciona con elementos textuales en lugar de caracteres individuales en una cadena.

  • Sobrecargas del Char.GetUnicodeCategory método , que determinan la categoría a la que pertenece un carácter o un par suplente.

  • Clases de caracteres reconocidas por Regex, . Motor de expresiones regulares de NET.

Al usar esta clase en las aplicaciones, tenga en cuenta las siguientes consideraciones de programación para usar el Char tipo . El tipo puede ser difícil de usar y las cadenas suelen ser preferibles para representar contenido lingüístico.

  • Un Char objeto no siempre corresponde a un solo carácter. Aunque el Char tipo representa un único valor de 16 bits, algunos caracteres (como los clústeres de grafos y los pares suplentes) constan de dos o más unidades de código UTF-16. Para obtener más información, vea "Char Objects and Unicode Characters" (Objetos char y caracteres Unicode) en la String clase .

  • La noción de un "carácter" también es flexible. Un carácter suele considerarse como glifo, pero muchos glifos requieren varios puntos de código. Por ejemplo, ä se puede representar mediante dos puntos de código ("a" más U+0308, que es la diaéresis combinada) o por un único punto de código ("ä" o U+00A4). Algunos idiomas tienen muchas letras, caracteres y glifos que requieren varios puntos de código, lo que puede causar confusión en la representación lingüística del contenido. Por ejemplo, hay un ΰ (U+03B0, letra minúscula griega upsilon con dialytika y tonos), pero no hay ninguna letra mayúscula equivalente. La creación de mayúsculas de este valor simplemente recupera el valor original.

Notas a los autores de las llamadas

Los caracteres reconocidos y las categorías específicas a las que pertenecen se definen mediante el estándar Unicode y pueden cambiar de una versión del estándar Unicode a otra. La categorización de caracteres en una versión determinada de .NET Framework se basa en una sola versión del estándar Unicode, independientemente del sistema operativo subyacente en el que se ejecuta .NET Framework. En la tabla siguiente se enumeran las versiones de .NET Framework desde .NET Framework 4 y las versiones del estándar Unicode que se usan para clasificar caracteres.

Versión de .NET Framework Versión estándar de 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 versión del estándar Unicode incluye información sobre los cambios en la base de datos de caracteres Unicode desde la versión anterior. La clase usa la CharUnicodeInfo base de datos de caracteres Unicode para clasificar caracteres.

Métodos

GetDecimalDigitValue(Char)

Obtiene el valor de dígito decimal del carácter numérico especificado.

GetDecimalDigitValue(String, Int32)

Obtiene el valor de dígito decimal del carácter numérico situado en el índice especificado de la cadena especificada.

GetDigitValue(Char)

Obtiene el valor de dígito del carácter numérico especificado.

GetDigitValue(String, Int32)

Obtiene el valor de dígito del carácter numérico situado en el índice especificado de la cadena especificada.

GetNumericValue(Char)

Obtiene el valor numérico asociado al carácter especificado.

GetNumericValue(String, Int32)

Obtiene el valor numérico asociado al carácter situado en el índice especificado de la cadena especificada.

GetUnicodeCategory(Char)

Obtiene la categoría de Unicode del carácter especificado.

GetUnicodeCategory(Int32)

Obtiene la categoría de Unicode del carácter especificado.

GetUnicodeCategory(String, Int32)

Obtiene la categoría de Unicode del carácter situado en el índice especificado de la cadena especificada.

Se aplica a

Consulte también