CharUnicodeInfo Klasse

Definition

Ruft Informationen zu einem Unicode-Zeichen ab. Diese Klasse kann nicht vererbt werden.

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

Beispiele

Das folgende Codebeispiel zeigt die Werte, die von jeder Methode für verschiedene Zeichentypen zurückgegeben werden.

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

Der Unicode-Standard definiert eine Reihe von Unicode-Zeichenkategorien. Beispielsweise kann ein Zeichen als Großbuchstabe, Kleinbuchstaben, Dezimalzahl, Buchstabenzahl, Absatztrennzeichen, mathematisches Symbol oder Währungssymbol kategorisiert werden. Ihre Anwendung kann die Zeichenkategorie verwenden, um zeichenfolgenbasierte Vorgänge zu steuern, z. B. das Analysieren oder Extrahieren von Teilzeichenfolgen mit regulären Ausdrücken. Die UnicodeCategory Enumeration definiert die möglichen Zeichenkategorien.

Verwenden Sie die CharUnicodeInfo -Klasse, um den UnicodeCategory Wert für ein bestimmtes Zeichen abzurufen. Die CharUnicodeInfo -Klasse definiert Methoden, die die folgenden Unicode-Zeichenwerte zurückgeben:

  • Die spezifische Kategorie, zu der ein Zeichen- oder Ersatzzeichenpaar gehört. Der zurückgegebene Wert ist ein Member der UnicodeCategory Enumeration.

  • Ein numerischer Wert. Gilt nur für numerische Zeichen, einschließlich Brüchen, Tiefgestellten, Hochgestellten, römischen Ziffern, Währungszählern, eingekreisten Zahlen und skriptspezifischen Ziffern.

  • Ziffernwert. Gilt für numerische Zeichen, die mit anderen numerischen Zeichen kombiniert werden können, um eine ganze Zahl in einem Nummerierungssystem darzustellen.

  • Dezimalstellenwert. Gilt nur für Zeichen, die Dezimalstellen im Dezimalsystem (Basis 10) darstellen. Eine Dezimalziffer kann eine von zehn Ziffern sein, von 0 bis neun. Diese Zeichen sind Mitglieder der UnicodeCategory.DecimalDigitNumber Kategorie.

Darüber hinaus wird die CharUnicodeInfo -Klasse intern von einer Reihe anderer .NET-Typen und -Methoden verwendet, die auf der Zeichenklassifizierung basieren. Dazu gehören:

  • Die StringInfo -Klasse, die mit Textelementen anstelle einzelner Zeichen in einer Zeichenfolge arbeitet.

  • Die Überladungen der Char.GetUnicodeCategory -Methode, die die Kategorie bestimmen, zu der ein Zeichen- oder Ersatzzeichenpaar gehört.

  • Die von erkannten Zeichenklassen , Regex. NET-Engine für reguläre Ausdrücke.

Beachten Sie bei der Verwendung dieser Klasse in Ihren Anwendungen die folgenden Programmierüberlegungen für die Verwendung des Typs Char . Der Typ kann schwierig zu verwenden sein, und Zeichenfolgen sind im Allgemeinen für die Darstellung linguistischer Inhalte vorzuziehen.

  • Ein Char -Objekt entspricht nicht immer einem einzelnen Zeichen. Obwohl der Char Typ einen einzelnen 16-Bit-Wert darstellt, bestehen einige Zeichen (z. B. Graphemcluster und Ersatzpaare) aus zwei oder mehr UTF-16-Codeeinheiten. Weitere Informationen finden Sie unter Char-Objekte und Unicode-Zeichen in der String -Klasse.

  • Der Begriff eines "Zeichens" ist ebenfalls flexibel. Ein Zeichen wird häufig als Glyphe betrachtet, aber viele Glyphen erfordern mehrere Codepunkte. Beispielsweise kann ä entweder durch zwei Codepunkte ("a" plus U+0308, die kombinierende Diaerese) oder durch einen einzelnen Codepunkt ("ä" oder U+00A4) dargestellt werden. Einige Sprachen verfügen über viele Buchstaben, Zeichen und Glyphen, die mehrere Codepunkte erfordern, was zu Verwirrung bei der Darstellung linguistischer Inhalte führen kann. Beispielsweise gibt es ein ΰ (U+03B0, griechischer Kleinbuchstaben upsilon mit Dialytika und Tonos), aber es gibt keinen entsprechenden Großbuchstaben. Wenn Sie einen solchen Wert uppercasingen, wird einfach der ursprüngliche Wert abgerufen.

Hinweise für Aufrufer

Erkannte Zeichen und die spezifischen Kategorien, zu denen sie gehören, werden durch den Unicode-Standard definiert und können von einer Version des Unicode-Standards in eine andere geändert werden. Die Kategorisierung von Zeichen in einer bestimmten Version von .NET Framework basiert auf einer einzelnen Version des Unicode-Standards, unabhängig vom zugrunde liegenden Betriebssystem, auf dem .NET Framework ausgeführt wird. In der folgenden Tabelle sind Versionen von .NET Framework seit .NET Framework 4 und die Versionen des Unicode-Standards aufgeführt, die zum Klassifizieren von Zeichen verwendet werden.

.NET Framework-Version Unicode-Standardversion
.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

Jede Version des Unicode-Standards enthält Informationen zu Änderungen an der Unicode-Zeichendatenbank seit der vorherigen Version. Die Unicode-Zeichendatenbank wird von der CharUnicodeInfo -Klasse zum Kategorisieren von Zeichen verwendet.

Methoden

GetDecimalDigitValue(Char)

Ruft den Dezimalziffernwert des angegebenen numerischen Zeichens ab.

GetDecimalDigitValue(String, Int32)

Ruft den Dezimalziffernwert des numerischen Zeichens am angegebenen Index der angegebenen Zeichenfolge ab.

GetDigitValue(Char)

Ruft den Ziffernwert des angegebenen numerischen Zeichens ab.

GetDigitValue(String, Int32)

Ruft den Ziffernwert des numerischen Zeichens am angegebenen Index der angegebenen Zeichenfolge ab.

GetNumericValue(Char)

Ruft den dem angegebenen Zeichen zugeordneten numerischen Wert ab.

GetNumericValue(String, Int32)

Ruft den dem Zeichen am angegebenen Index der angegebenen Zeichenfolge zugeordneten numerischen Wert ab.

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.

Gilt für:

Weitere Informationen