Język

CharUnicodeInfo.GetUnicodeCategory Metoda

Definicja

Pobiera kategorię Unicode znaku Unicode.

Przeciążenia

Nazwa Opis
GetUnicodeCategory(Char)

Pobiera kategorię Unicode określonego znaku.

GetUnicodeCategory(Int32)

Pobiera kategorię Unicode określonego znaku.

GetUnicodeCategory(String, Int32)

Pobiera kategorię Unicode znaku w określonym indeksie określonego ciągu.

GetUnicodeCategory(Char)

Źródło:
CharUnicodeInfo.cs
Źródło:
CharUnicodeInfo.cs
Źródło:
CharUnicodeInfo.cs
Źródło:
CharUnicodeInfo.cs
Źródło:
CharUnicodeInfo.cs

Pobiera kategorię Unicode określonego znaku.

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

Parametry

ch
Char

Znak Unicode, dla którego ma być pobierana kategoria Unicode.

Zwraca

UnicodeCategory Wartość wskazująca kategorię określonego znaku.

Przykłady

Poniższy przykład kodu przedstawia wartości zwracane przez każdą metodę dla różnych typów znaków.

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

Uwagi

Znaki Unicode są podzielone na kategorie. Kategoria znaku jest jedną z jego właściwości. Na przykład znak może być wielką literą, małą literą, cyfrą dziesiętną, cyfrą dziesiętną, cyfrą literową, znakiem interpunkcyjnym łącznika, symbolem matematycznym lub symbolem waluty. Wyliczenie UnicodeCategory definiuje kategorię znaku Unicode. Aby uzyskać więcej informacji na temat znaków Unicode, zobacz Standard Unicode.

Metoda GetUnicodeCategory zakłada, że ch odpowiada pojedynczemu znakowi językowemu i zwraca jego kategorię. Oznacza to, że w przypadku par zastępczych zwraca UnicodeCategory.Surrogate zamiast kategorii, do której należy surogat. Na przykład alfabet ugarytyczny zajmuje punkty kodu U+10380 do U+1039F. W poniższym przykładzie ConvertFromUtf32 użyto metody , aby utworzyć wystąpienie ciągu reprezentującego UGARITIC LETTER ALPA (U+10380), czyli pierwszą literę alfabetu ugarytycznego. Jak pokazano w danych wyjściowych z przykładu, metoda zwraca IsNumber(Char) wartość false , jeśli jest przekazywana wysoki zastępca lub niski zastępca tego znaku.

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

Należy pamiętać, że CharUnicodeInfo.GetUnicodeCategory nie zawsze zwraca tę samą UnicodeCategory wartość co Char.GetUnicodeCategory metoda po przekazaniu określonego znaku jako parametru. Metoda została zaprojektowana CharUnicodeInfo.GetUnicodeCategory tak, aby odzwierciedlała bieżącą wersję standardu Unicode. Natomiast metoda Char.GetUnicodeCategory zwykle odzwierciedla bieżącą wersję standardu Unicode, może zwrócić kategorię znaku na podstawie poprzedniej wersji standardu lub zwrócić kategorię, która różni się od bieżącego standardu w celu zachowania zgodności z poprzednimi wersjami.

Zobacz też

Dotyczy

GetUnicodeCategory(Int32)

Źródło:
CharUnicodeInfo.cs
Źródło:
CharUnicodeInfo.cs
Źródło:
CharUnicodeInfo.cs
Źródło:
CharUnicodeInfo.cs
Źródło:
CharUnicodeInfo.cs

Pobiera kategorię Unicode określonego znaku.

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

Parametry

codePoint
Int32

Liczba reprezentująca wartość 32-bitowego punktu kodu znaku Unicode.

Zwraca

UnicodeCategory Wartość wskazująca kategorię określonego znaku.

Dotyczy

GetUnicodeCategory(String, Int32)

Źródło:
CharUnicodeInfo.cs
Źródło:
CharUnicodeInfo.cs
Źródło:
CharUnicodeInfo.cs
Źródło:
CharUnicodeInfo.cs
Źródło:
CharUnicodeInfo.cs

Pobiera kategorię Unicode znaku w określonym indeksie określonego ciągu.

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

Parametry

s
String

Zawiera String znak Unicode, dla którego ma być pobierana kategoria Unicode.

index
Int32

Indeks znaku Unicode, dla którego ma być pobrana kategoria Unicode.

Zwraca

UnicodeCategory Wartość wskazująca kategorię znaku w określonym indeksie określonego ciągu.

Wyjątki

Parametr s ma wartość null.

index znajduje się poza zakresem prawidłowych indeksów w pliku s.

Przykłady

Poniższy przykład kodu przedstawia wartości zwracane przez każdą metodę dla różnych typów znaków.

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

Uwagi

Znaki Unicode są podzielone na kategorie. Kategoria znaku jest jedną z jego właściwości. Na przykład znak może być wielką literą, małą literą, cyfrą dziesiętną, cyfrą dziesiętną, cyfrą literową, znakiem interpunkcyjnym łącznika, symbolem matematycznym lub symbolem waluty. Wyliczenie UnicodeCategory definiuje kategorię znaku Unicode. Aby uzyskać więcej informacji na temat znaków Unicode, zobacz Standard Unicode.

Jeśli obiekt na Char pozycji index jest pierwszym znakiem prawidłowej pary zastępczej, GetUnicodeCategory(String, Int32) metoda zwraca kategorię Unicode pary zastępczej zamiast zwracać UnicodeCategory.Surrogatewartość . Na przykład alfabet ugarytyczny zajmuje punkty kodu U+10380 do U+1039F. W poniższym przykładzie ConvertFromUtf32 użyto metody , aby utworzyć wystąpienie ciągu reprezentującego UGARITIC LETTER ALPA (U+10380), czyli pierwszą literę alfabetu ugarytycznego. Jak pokazano w danych wyjściowych z przykładu, metoda zwraca GetUnicodeCategory(String, Int32) wartość UnicodeCategory.OtherLetter , jeśli jest przekazywana wysoki zastępca tego znaku, co wskazuje, że uważa parę zastępczą. Jeśli jednak jest przekazywany niski zastępca, uważa tylko niski zastępca w izolacji i zwraca wartość 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

Należy pamiętać, że CharUnicodeInfo.GetUnicodeCategory metoda nie zawsze zwraca tę samą UnicodeCategory wartość co Char.GetUnicodeCategory metoda po przekazaniu określonego znaku jako parametru. Metoda została zaprojektowana CharUnicodeInfo.GetUnicodeCategory tak, aby odzwierciedlała bieżącą wersję standardu Unicode. Natomiast metoda Char.GetUnicodeCategory zwykle odzwierciedla bieżącą wersję standardu Unicode, może zwrócić kategorię znaku na podstawie poprzedniej wersji standardu lub zwrócić kategorię, która różni się od bieżącego standardu w celu zachowania zgodności z poprzednimi wersjami.

Zobacz też

Dotyczy