CharUnicodeInfo.GetUnicodeCategory Metodo

Definizione

Ottiene la categoria Unicode di un carattere Unicode.

Overload

Nome Descrizione
GetUnicodeCategory(Char)

Ottiene la categoria Unicode del carattere specificato.

GetUnicodeCategory(Int32)

Ottiene la categoria Unicode del carattere specificato.

GetUnicodeCategory(String, Int32)

Ottiene la categoria Unicode del carattere in corrispondenza dell'indice specificato della stringa specificata.

GetUnicodeCategory(Char)

Ottiene la categoria Unicode del carattere specificato.

public:
 static System::Globalization::UnicodeCategory GetUnicodeCategory(char ch);
public static System.Globalization.UnicodeCategory GetUnicodeCategory(char ch);
static member GetUnicodeCategory : char -> System.Globalization.UnicodeCategory
Public Shared Function GetUnicodeCategory (ch As Char) As UnicodeCategory

Parametri

ch
Char

Carattere Unicode per il quale ottenere la categoria Unicode.

Valori restituiti

Valore UnicodeCategory che indica la categoria del carattere specificato.

Esempio

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

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

I caratteri Unicode sono suddivisi in categorie. La categoria di un carattere è una delle relative proprietà. Ad esempio, un carattere potrebbe essere una lettera maiuscola, una lettera minuscola, un numero di cifra decimale, un numero di lettera, una punteggiatura del connettore, un simbolo matematico o un simbolo di valuta. L'enumerazione UnicodeCategory definisce la categoria di un carattere Unicode. Per altre informazioni sui caratteri Unicode, vedere Lo standard Unicode.

Il GetUnicodeCategory metodo presuppone che ch corrisponda a un singolo carattere linguistico e restituisca la relativa categoria. Ciò significa che, per le coppie surrogate, restituisce UnicodeCategory.Surrogate invece della categoria a cui appartiene il surrogato. Ad esempio, l'alfabeto Ugaritico occupa i punti di codice U+10380 a U+1039F. Nell'esempio seguente viene utilizzato il ConvertFromUtf32 metodo per creare un'istanza di una stringa che rappresenta UGARITIC LETTER ALPA (U+10380), ovvero la prima lettera dell'alfabeto Ugaritico. Come illustrato nell'output dell'esempio, il IsNumber(Char) metodo restituisce false se viene passato il surrogato alto o il surrogato basso di questo carattere.

int utf32 = 0x10380;       // UGARITIC LETTER ALPA
string surrogate = Char.ConvertFromUtf32(utf32);
foreach (var ch in surrogate)
    Console.WriteLine($"U+{(ushort)ch:X4}: {System.Globalization.CharUnicodeInfo.GetUnicodeCategory(ch):G}");
// The example displays the following output:
//       U+D800: Surrogate
//       U+DF80: Surrogate
Dim utf32 As Integer = &h10380       ' UGARITIC LETTER ALPA
Dim surrogate As String = Char.ConvertFromUtf32(utf32)
For Each ch In surrogate
   Console.WriteLine("U+{0:X4}: {1:G}", 
                     Convert.ToUInt16(ch), 
                     System.Globalization.CharUnicodeInfo.GetUnicodeCategory(ch))
Next
' The example displays the following output:
'       U+D800: Surrogate
'       U+DF80: Surrogate

Si noti che CharUnicodeInfo.GetUnicodeCategory non restituisce sempre lo stesso UnicodeCategory valore del Char.GetUnicodeCategory metodo quando viene passato un particolare carattere come parametro. Il CharUnicodeInfo.GetUnicodeCategory metodo è progettato per riflettere la versione corrente dello standard Unicode. Al contrario, anche se il Char.GetUnicodeCategory metodo riflette in genere la versione corrente dello standard Unicode, potrebbe restituire la categoria di un carattere in base a una versione precedente dello standard oppure potrebbe restituire una categoria diversa dallo standard corrente per mantenere la compatibilità con le versioni precedenti.

Vedi anche

Si applica a

GetUnicodeCategory(Int32)

Ottiene la categoria Unicode del carattere specificato.

public:
 static System::Globalization::UnicodeCategory GetUnicodeCategory(int codePoint);
public static System.Globalization.UnicodeCategory GetUnicodeCategory(int codePoint);
static member GetUnicodeCategory : int -> System.Globalization.UnicodeCategory
Public Shared Function GetUnicodeCategory (codePoint As Integer) As UnicodeCategory

Parametri

codePoint
Int32

Numero che rappresenta il valore del punto di codice a 32 bit del carattere Unicode.

Valori restituiti

Valore UnicodeCategory che indica la categoria del carattere specificato.

Si applica a

GetUnicodeCategory(String, Int32)

Ottiene la categoria Unicode del carattere in corrispondenza dell'indice specificato della stringa specificata.

public:
 static System::Globalization::UnicodeCategory GetUnicodeCategory(System::String ^ s, int index);
public static System.Globalization.UnicodeCategory GetUnicodeCategory(string s, int index);
static member GetUnicodeCategory : string * int -> System.Globalization.UnicodeCategory
Public Shared Function GetUnicodeCategory (s As String, index As Integer) As UnicodeCategory

Parametri

s
String

Oggetto String contenente il carattere Unicode per il quale ottenere la categoria Unicode.

index
Int32

Indice del carattere Unicode per il quale ottenere la categoria Unicode.

Valori restituiti

Valore UnicodeCategory che indica la categoria del carattere in corrispondenza dell'indice specificato della stringa specificata.

Eccezioni

index non è compreso nell'intervallo di indici validi in s.

Esempio

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

using System;
using System.Globalization;

public class SamplesCharUnicodeInfo  {

   public static void Main()  {

      // The String to get information for.
      String s = "a9\u0393\u00B2\u00BC\u0BEF\u0BF0\u2788";
      Console.WriteLine( "String: {0}", s );

      // Print the values for each of the characters in the string.
      Console.WriteLine( "index c  Num   Dig   Dec   UnicodeCategory" );
      for ( int i = 0; i < s.Length; i++ )  {
         Console.Write( "{0,-5} {1,-3}", i, s[i] );
         Console.Write( " {0,-5}", CharUnicodeInfo.GetNumericValue( s, i ) );
         Console.Write( " {0,-5}", CharUnicodeInfo.GetDigitValue( s, i ) );
         Console.Write( " {0,-5}", CharUnicodeInfo.GetDecimalDigitValue( s, i ) );
         Console.WriteLine( "{0}", CharUnicodeInfo.GetUnicodeCategory( s, i ) );
      }
   }
}


/*
This code produces the following output.  Some characters might not display at the console.

String: a9Γ²¼௯௰➈
index c  Num   Dig   Dec   UnicodeCategory
0     a   -1    -1    -1   LowercaseLetter
1     9   9     9     9    DecimalDigitNumber
2     Γ   -1    -1    -1   UppercaseLetter
3     ²   2     2     -1   OtherNumber
4     ¼   0.25  -1    -1   OtherNumber
5     ௯   9     9     9    DecimalDigitNumber
6     ௰   10    -1    -1   OtherNumber
7     ➈   9     9     -1   OtherNumber

*/
Imports System.Globalization

Public Class SamplesCharUnicodeInfo

   Public Shared Sub Main()

      ' The String to get information for.
      Dim s As [String] = "a9\u0393\u00B2\u00BC\u0BEF\u0BF0\u2788"
      Console.WriteLine("String: {0}", s)

      ' Print the values for each of the characters in the string.
      Console.WriteLine("index c  Num   Dig   Dec   UnicodeCategory")
      Dim i As Integer
      For i = 0 To s.Length - 1
         Console.Write("{0,-5} {1,-3}", i, s(i))
         Console.Write(" {0,-5}", CharUnicodeInfo.GetNumericValue(s, i))
         Console.Write(" {0,-5}", CharUnicodeInfo.GetDigitValue(s, i))
         Console.Write(" {0,-5}", CharUnicodeInfo.GetDecimalDigitValue(s, i))
         Console.WriteLine("{0}", CharUnicodeInfo.GetUnicodeCategory(s, i))
      Next i

   End Sub

End Class


'This code produces the following output.  Some characters might not display at the console.
'
'String: a9Γ²¼௯௰➈
'index c  Num   Dig   Dec   UnicodeCategory
'0     a   -1    -1    -1   LowercaseLetter
'1     9   9     9     9    DecimalDigitNumber
'2     Γ   -1    -1    -1   UppercaseLetter
'3     ²   2     2     -1   OtherNumber
'4     ¼   0.25  -1    -1   OtherNumber
'5     ௯   9     9     9    DecimalDigitNumber
'6     ௰   10    -1    -1   OtherNumber
'7     ➈   9     9     -1   OtherNumber

Commenti

I caratteri Unicode sono suddivisi in categorie. La categoria di un carattere è una delle relative proprietà. Ad esempio, un carattere potrebbe essere una lettera maiuscola, una lettera minuscola, un numero di cifra decimale, un numero di lettera, una punteggiatura del connettore, un simbolo matematico o un simbolo di valuta. L'enumerazione UnicodeCategory definisce la categoria di un carattere Unicode. Per altre informazioni sui caratteri Unicode, vedere Lo standard Unicode.

Se l'oggetto Char in posizione index è il primo carattere di una coppia di surrogati valida, il GetUnicodeCategory(String, Int32) metodo restituisce la categoria Unicode della coppia surrogata anziché restituire UnicodeCategory.Surrogate. Ad esempio, l'alfabeto Ugaritico occupa i punti di codice U+10380 a U+1039F. Nell'esempio seguente viene utilizzato il ConvertFromUtf32 metodo per creare un'istanza di una stringa che rappresenta UGARITIC LETTER ALPA (U+10380), ovvero la prima lettera dell'alfabeto Ugaritico. Come illustrato nell'output dell'esempio, il GetUnicodeCategory(String, Int32) metodo restituisce UnicodeCategory.OtherLetter se viene passato il surrogato elevato di questo carattere, che indica che considera la coppia di surrogati. Tuttavia, se viene passato il surrogato basso, considera solo il surrogato basso in isolamento e restituisce UnicodeCategory.Surrogate.

int utf32 = 0x10380;       // UGARITIC LETTER ALPA
string surrogate = Char.ConvertFromUtf32(utf32);
for (int ctr = 0; ctr < surrogate.Length; ctr++)
    Console.WriteLine($"U+{(ushort)surrogate[ctr]:X4}: {System.Globalization.CharUnicodeInfo.GetUnicodeCategory(surrogate, ctr):G}");
// The example displays the following output:
//       U+D800: OtherLetter
//       U+DF80: Surrogate
Dim utf32 As Integer = &h10380       ' UGARITIC LETTER ALPA
Dim surrogate As String = Char.ConvertFromUtf32(utf32)
For ctr As Integer = 0 To surrogate.Length - 1
   Console.WriteLine("U+{0:X4}: {1:G}", 
                     Convert.ToUInt16(surrogate(ctr)), 
                     System.Globalization.CharUnicodeInfo.GetUnicodeCategory(surrogate, ctr))
Next
' The example displays the following output:
'       U+D800: OtherLetter
'       U+DF80: Surrogate

Si noti che CharUnicodeInfo.GetUnicodeCategory il metodo non restituisce sempre lo stesso UnicodeCategory valore del Char.GetUnicodeCategory metodo quando viene passato un particolare carattere come parametro. Il CharUnicodeInfo.GetUnicodeCategory metodo è progettato per riflettere la versione corrente dello standard Unicode. Al contrario, anche se il Char.GetUnicodeCategory metodo riflette in genere la versione corrente dello standard Unicode, potrebbe restituire la categoria di un carattere in base a una versione precedente dello standard oppure potrebbe restituire una categoria diversa dallo standard corrente per mantenere la compatibilità con le versioni precedenti.

Vedi anche

Si applica a