Freigeben über


CharUnicodeInfo.GetUnicodeCategory Methode

Definition

Ruft die Unicode-Kategorie eines Unicode-Zeichens ab.

Überlädt

GetUnicodeCategory(Char)

Ruft die Unicode-Kategorie des angegebenen Zeichens ab.

GetUnicodeCategory(Int32)

Ruft die Unicode-Kategorie des angegebenen Zeichens ab.

GetUnicodeCategory(String, Int32)

Ruft die Unicode-Kategorie des Zeichens am angegebenen Index der angegebenen Zeichenfolge ab.

GetUnicodeCategory(Char)

Quelle:
CharUnicodeInfo.cs
Quelle:
CharUnicodeInfo.cs
Quelle:
CharUnicodeInfo.cs

Ruft die Unicode-Kategorie des angegebenen Zeichens ab.

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

Parameter

ch
Char

Das Unicode-Zeichen, dessen Unicode-Kategorie abgerufen werden soll.

Gibt zurück

Ein UnicodeCategory-Wert, der die Kategorie des angegebenen Zeichens angibt.

Beispiele

Das folgende Codebeispiel zeigt die von jeder Methode zurückgegebenen Werte für unterschiedliche Zeichentypen.

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

Hinweise

Die Unicode-Zeichen sind in Kategorien unterteilt. Die Kategorie eines Zeichens ist eine ihrer Eigenschaften. Ein Zeichen kann beispielsweise ein Großbuchstaben, ein Kleinbuchstaben, eine Dezimalzahl, eine Buchstabennummer, eine Buchstabennummer, eine Verbindungszeichenzeichen, ein mathematisches Symbol oder ein Währungssymbol sein. Die UnicodeCategory -Klasse gibt die Kategorie eines Unicode-Zeichens zurück. Weitere Informationen zu Unicode-Zeichen finden Sie im Unicode-Standard.

Die GetUnicodeCategory Methode geht davon aus, dass ch ein einzelnes linguistisches Zeichen entspricht, und gibt seine Kategorie zurück. Dies bedeutet, dass für Ersatzpaare anstelle der Kategorie, zu der das Ersatzgat gehört, zurückgegeben UnicodeCategory.Surrogate wird. Das ugaritische Alphabet belegt beispielsweise Die Codepunkte U+10380 bis U+1039F. Im folgenden Beispiel wird die ConvertFromUtf32 -Methode verwendet, um eine Zeichenfolge zu instanziieren, die UGARITIC LETTER ALPA (U+10380) darstellt, wobei es sich um den ersten Buchstaben des ugaritischen Alphabets handelt. Wie die Ausgabe aus dem Beispiel zeigt, gibt die IsNumber(Char) Methode zurück false , wenn sie entweder das hohe Ersatzzeichen oder das niedrige Ersatzzeichen dieses Zeichens übergeben wird.

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

Beachten Sie, dass CharUnicodeInfo.GetUnicodeCategory nicht immer derselbe UnicodeCategory Wert wie die Char.GetUnicodeCategory -Methode zurückgegeben wird, wenn ein bestimmtes Zeichen als Parameter übergeben wird. Die CharUnicodeInfo.GetUnicodeCategory Methode ist so konzipiert, dass sie die aktuelle Version des Unicode-Standards widerspiegelt. Im Gegensatz dazu gibt die Methode, obwohl sie Char.GetUnicodeCategory normalerweise die aktuelle Version des Unicode-Standards wiedergibt, die Kategorie eines Zeichens basierend auf einer früheren Version des Standards zurück, oder sie kann eine Kategorie zurückgeben, die sich von der aktuellen Norm unterscheidet, um die Abwärtskompatibilität zu erhalten.

Weitere Informationen

Gilt für:

GetUnicodeCategory(Int32)

Quelle:
CharUnicodeInfo.cs
Quelle:
CharUnicodeInfo.cs
Quelle:
CharUnicodeInfo.cs

Ruft die Unicode-Kategorie des angegebenen Zeichens ab.

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

Parameter

codePoint
Int32

Eine Zahl, die den 32-Bit-Codepunktwert des Unicode-Zeichens darstellt.

Gibt zurück

Ein UnicodeCategory-Wert, der die Kategorie des angegebenen Zeichens angibt.

Gilt für:

GetUnicodeCategory(String, Int32)

Quelle:
CharUnicodeInfo.cs
Quelle:
CharUnicodeInfo.cs
Quelle:
CharUnicodeInfo.cs

Ruft die Unicode-Kategorie des Zeichens am angegebenen Index der angegebenen Zeichenfolge ab.

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

Parameter

s
String

Der String mit dem Unicode-Zeichen, dessen Unicode-Kategorie abgerufen werden soll.

index
Int32

Der Index des Unicode-Zeichens, dessen Unicode-Kategorie abgerufen werden soll.

Gibt zurück

Ein UnicodeCategory-Wert, der die Kategorie des Zeichens am angegebenen Index der angegebenen Zeichenfolge angibt.

Ausnahmen

s ist null.

index liegt außerhalb des Bereichs der gültigen Indizes für s.

Beispiele

Das folgende Codebeispiel zeigt die von jeder Methode zurückgegebenen Werte für unterschiedliche Zeichentypen.

using namespace System;
using namespace System::Globalization;
int 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

*/
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

Hinweise

Die Unicode-Zeichen sind in Kategorien unterteilt. Die Kategorie eines Zeichens ist eine ihrer Eigenschaften. Ein Zeichen kann beispielsweise ein Großbuchstaben, ein Kleinbuchstaben, eine Dezimalzahl, eine Buchstabennummer, eine Buchstabennummer, eine Verbindungszeichenzeichen, ein mathematisches Symbol oder ein Währungssymbol sein. Die UnicodeCategory -Klasse gibt die Kategorie eines Unicode-Zeichens zurück. Weitere Informationen zu Unicode-Zeichen finden Sie im Unicode-Standard.

Wenn das Char Objekt an der Position index das erste Zeichen eines gültigen Ersatzpaars ist, gibt die GetUnicodeCategory(String, Int32) Methode die Unicode-Kategorie des Ersatzpaars zurück, anstatt zurückzugeben UnicodeCategory.Surrogate. Das ugaritische Alphabet belegt beispielsweise Die Codepunkte U+10380 bis U+1039F. Im folgenden Beispiel wird die ConvertFromUtf32 -Methode verwendet, um eine Zeichenfolge zu instanziieren, die UGARITIC LETTER ALPA (U+10380) darstellt, wobei es sich um den ersten Buchstaben des ugaritischen Alphabets handelt. Wie die Ausgabe aus dem Beispiel zeigt, gibt die GetUnicodeCategory(String, Int32) -Methode zurück UnicodeCategory.OtherLetter , wenn sie den hohen Ersatz dieses Zeichens übergeben wird, was angibt, dass sie das Ersatzpaar berücksichtigt. Wenn jedoch der niedrige Ersatz übergeben wird, betrachtet es nur den niedrigen Ersatz für isoliert und gibt zurück 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

Beachten Sie, dass die CharUnicodeInfo.GetUnicodeCategory Methode nicht immer den gleichen UnicodeCategory Wert wie die Char.GetUnicodeCategory -Methode zurückgibt, wenn ein bestimmtes Zeichen als Parameter übergeben wird. Die CharUnicodeInfo.GetUnicodeCategory Methode ist so konzipiert, dass sie die aktuelle Version des Unicode-Standards widerspiegelt. Im Gegensatz dazu gibt die Methode, obwohl sie Char.GetUnicodeCategory normalerweise die aktuelle Version des Unicode-Standards wiedergibt, die Kategorie eines Zeichens basierend auf einer früheren Version des Standards zurück, oder sie kann eine Kategorie zurückgeben, die sich von der aktuellen Norm unterscheidet, um die Abwärtskompatibilität zu erhalten.

Weitere Informationen

Gilt für: