CharUnicodeInfo Třída

Definice

Načte informace o znaku unicode. Tuto třídu nelze dědit.

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
Dědičnost
CharUnicodeInfo

Příklady

Následující příklad kódu ukazuje hodnoty vrácené jednotlivými metodami pro různé typy znaků.

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

Poznámky

Standard Unicode definuje několik kategorií znaků Unicode. Znak může být například zařazen do kategorií jako velké písmeno, malé písmeno, desetinné číslice, číslo písmena, oddělovač odstavců, matematický symbol nebo symbol měny. Aplikace může používat kategorii znaků k řízení operací založených na řetězcích, jako je analýza nebo extrahování podřetězce pomocí regulárních výrazů. Výčet UnicodeCategory definuje možné kategorie znaků.

CharUnicodeInfo Použijte třídu k získání UnicodeCategory hodnoty pro konkrétní znak. Třída CharUnicodeInfo definuje metody, které vrací následující hodnoty znaků Unicode:

  • Konkrétní kategorie, do které patří znak nebo náhradní pár. Vrácená hodnota je členem výčtu UnicodeCategory .

  • Číselná hodnota. Platí pouze pro číselné znaky, včetně zlomků, dolních indexů, horních indexů, římských číslic, čitatelů měn, čísel v kruhu a číslic specifických pro skripty.

  • Číslicová hodnota. Platí pro číselné znaky, které lze kombinovat s jinými číselnými znaky, aby představovaly celé číslo v systému číslování.

  • Hodnota desetinné číslice Platí pouze pro znaky, které představují desetinné číslice v desítkovém systému (základ 10). Desetinná číslice může mít jednu z deseti číslic od nuly do devíti. Tyto znaky jsou členy UnicodeCategory.DecimalDigitNumber kategorie.

Kromě toho CharUnicodeInfo třídu interně používá řada dalších typů a metod rozhraní .NET, které se spoléhají na klasifikaci znaků. Tady jsou některé z nich:

  • Třída StringInfo , která pracuje s textovými prvky namísto jednotlivých znaků v řetězci.

  • Přetížení Char.GetUnicodeCategory metody, které určují kategorii, do které patří znak nebo náhradní pár.

  • Třídy znaků rozpoznané , Regex. Modul regulárních výrazů na platformě NET.

Při použití této třídy ve vašich aplikacích mějte na paměti následující aspekty programování pro použití Char typu . Typ může být obtížně použitelný a řetězce jsou obecně vhodnější pro reprezentaci jazykového obsahu.

  • Objekt Char nemusí vždy odpovídat jednomu znaku. Char I když typ představuje jednu 16bitovou hodnotu, některé znaky (například grafeme clustery a náhradní páry) se skládají ze dvou nebo více jednotek kódu UTF-16. Další informace naleznete v tématu "Char objekty a znaky Unicode" ve String třídě.

  • Pojem "znak" je také flexibilní. Znak je často považován za piktogram, ale mnoho piktogramů vyžaduje více bodů kódu. Například ä může být reprezentováno buď dvěma body kódu ("a" plus U+0308, což je kombinující diaeréza), nebo jediným bodem kódu ("ä" nebo U+00A4). Některé jazyky mají mnoho písmen, znaků a piktogramů, které vyžadují více bodů kódu, což může vést k nejasnostem v jazykové reprezentaci obsahu. Existuje například ΰ (U+03B0, řecké malé písmeno upsilon s dialytikou a tonosem), ale neexistuje odpovídající velké písmeno. Když takovou hodnotu zadáte na vyšší, jednoduše se načte původní hodnota.

Poznámky pro volající

Rozpoznané znaky a konkrétní kategorie, do kterých patří, jsou definovány standardem Unicode a mohou se měnit z jedné verze standardu Unicode na jinou. Kategorizace znaků v konkrétní verzi rozhraní .NET Framework je založena na jedné verzi standardu Unicode, bez ohledu na základní operační systém, na kterém běží rozhraní .NET Framework. Následující tabulka uvádí verze rozhraní .NET Framework od rozhraní .NET Framework 4 a verze standardu Unicode používané ke klasifikaci znaků.

Verze rozhraní .NET Framework Standardní verze 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

Každá verze standardu Unicode obsahuje informace o změnách databáze znaků Unicode od předchozí verze. Znaková databáze Unicode je používána CharUnicodeInfo třídou pro kategorizaci znaků.

Metody

GetDecimalDigitValue(Char)

Získá hodnotu desetinné číslice zadaného číselného znaku.

GetDecimalDigitValue(String, Int32)

Získá hodnotu desetinné číslice číselného znaku v zadaném indexu zadaného řetězce.

GetDigitValue(Char)

Získá hodnotu číslice zadaného číselného znaku.

GetDigitValue(String, Int32)

Získá hodnotu číslice číselného znaku v zadaném indexu zadaného řetězce.

GetNumericValue(Char)

Získá číselnou hodnotu přidruženou k zadanému znaku.

GetNumericValue(String, Int32)

Získá číselnou hodnotu přidruženou znaku v zadaném indexu zadaného řetězce.

GetUnicodeCategory(Char)

Získá Unicode kategorie zadaného znaku.

GetUnicodeCategory(Int32)

Získá Unicode kategorie zadaného znaku.

GetUnicodeCategory(String, Int32)

Získá Unicode kategorie znaku v zadaném indexu zadaného řetězce.

Platí pro

Viz také