CharUnicodeInfo Classe

Definizione

Recupera le informazioni relative a un carattere Unicode. La classe non può essere ereditata.

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
Ereditarietà
CharUnicodeInfo

Esempio

Nell'esempio di codice seguente vengono illustrati i valori restituiti da ogni metodo per tipi diversi di caratteri.

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

Commenti

Lo standard Unicode definisce una serie di categorie di caratteri Unicode. Ad esempio, un carattere può essere classificato come una lettera maiuscola, una lettera minuscola, un numero di cifra decimale, un numero di lettera, un separatore di paragrafo, un simbolo matematico o un simbolo di valuta. L'applicazione può usare la categoria di caratteri per gestire le operazioni basate su stringa, ad esempio l'analisi o l'estrazione di sottostringa con espressioni regolari. L'enumerazione UnicodeCategory definisce le possibili categorie di caratteri.

Usare la CharUnicodeInfo classe per ottenere il UnicodeCategory valore per un carattere specifico. La CharUnicodeInfo classe definisce i metodi che restituiscono i valori di carattere Unicode seguenti:

  • Categoria specifica a cui appartiene una coppia di caratteri o surrogati. Il valore restituito è un membro dell'enumerazione UnicodeCategory .

  • Valore numerico. Si applica solo ai caratteri numerici, tra cui frazioni, pedice, apice, numeri romani, numeratori di valuta, numeri circoscritti e cifre specifiche dello script.

  • Valore di cifra. Si applica ai caratteri numerici che possono essere combinati con altri caratteri numerici per rappresentare un numero intero in un sistema di numerazione.

  • Valore di cifra decimale. Si applica solo ai caratteri che rappresentano cifre decimali nel sistema decimale (base 10). Una cifra decimale può essere una di dieci cifre, da zero a nove. Questi caratteri sono membri della UnicodeCategory.DecimalDigitNumber categoria.

Inoltre, la CharUnicodeInfo classe viene usata internamente da numerosi altri tipi e metodi .NET che si basano sulla classificazione dei caratteri. Sono inclusi:

  • Classe StringInfo , che funziona con elementi testuali invece di singoli caratteri in una stringa.

  • Overload del Char.GetUnicodeCategory metodo , che determinano la categoria a cui appartiene una coppia di caratteri o surrogati.

  • Classi di caratteri riconosciute da Regex, . Motore delle espressioni regolari di NET.

Quando si usa questa classe nelle applicazioni, tenere presenti le considerazioni di programmazione seguenti per l'uso del Char tipo . Il tipo può essere difficile da usare e le stringhe sono in genere preferibili per rappresentare il contenuto linguistico.

  • Un Char oggetto non corrisponde sempre a un singolo carattere. Anche se il Char tipo rappresenta un singolo valore a 16 bit, alcuni caratteri (ad esempio cluster grapheme e coppie di surrogati) sono costituiti da due o più unità di codice UTF-16. Per altre informazioni, vedere "Oggetti char e caratteri Unicode" nella String classe .

  • La nozione di "carattere" è anche flessibile. Un carattere viene spesso considerato come un glifo, ma molti glifi richiedono più punti di codice. Ad esempio, ä può essere rappresentato da due punti di codice ("a" più U+0308, ovvero la diaeresi combinata) o da un singolo punto di codice ("ä" o U+00A4). Alcune lingue hanno molte lettere, caratteri e glifi che richiedono più punti di codice, che possono causare confusione nella rappresentazione del contenuto linguistico. Ad esempio, c'è un ΰ (U+03B0, lettera piccola greca upsilon con dialytika e tonos), ma non c'è una lettera maiuscola equivalente. L'uppercasing di un valore di questo tipo recupera semplicemente il valore originale.

Note per i chiamanti

I caratteri riconosciuti e le categorie specifiche a cui appartengono sono definiti dallo standard Unicode e possono passare da una versione dello standard Unicode a un'altra. La categorizzazione dei caratteri in una determinata versione di .NET Framework è basata su una singola versione dello standard Unicode, indipendentemente dal sistema operativo sottostante in cui è in esecuzione .NET Framework. Nella tabella seguente sono elencate le versioni di .NET Framework a partire da .NET Framework 4 e dalle versioni di Unicode Standard usate per classificare i caratteri.

Versione di .NET Framework Versione Standard 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

Ogni versione dello standard Unicode include informazioni sulle modifiche apportate al database dei caratteri Unicode rispetto alla versione precedente. Il database di caratteri Unicode viene utilizzato dalla CharUnicodeInfo classe per la categorizzazione dei caratteri.

Metodi

GetDecimalDigitValue(Char)

Ottiene il valore della cifra decimale del carattere numerico specificato.

GetDecimalDigitValue(String, Int32)

Ottiene il valore della cifra decimale del carattere numerico nell'indice specificato della stringa specificata.

GetDigitValue(Char)

Ottiene il valore della cifra del carattere numerico specificato.

GetDigitValue(String, Int32)

Ottiene il valore della cifra del carattere numerico nell'indice specificato della stringa specificata.

GetNumericValue(Char)

Ottiene il valore numerico associato al carattere specificato.

GetNumericValue(String, Int32)

Ottiene il valore numerico associato al carattere nell'indice specificato della stringa specificata.

GetUnicodeCategory(Char)

Ottiene la categoria Unicode di un carattere specificato.

GetUnicodeCategory(Int32)

Ottiene la categoria Unicode di un carattere specificato.

GetUnicodeCategory(String, Int32)

Ottiene la categoria Unicode del carattere nell'indice specificato della stringa specificata.

Si applica a

Vedi anche