CharUnicodeInfo Klasa

Definicja

Pobiera informacje o znaku Unicode.Retrieves information about a Unicode character. Klasa ta nie może być dziedziczona.This class cannot be inherited.

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

Przykłady

Poniższy przykład kodu pokazuje wartości zwracane przez każdą metodę dla różnych typów znaków.The following code example shows the values returned by each method for different types of characters.

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       \u0393   -1    -1    -1   UppercaseLetter
U+0039 DIGIT NINE                       9   9     9     9    DecimalDigitNumber
U+00B2 SUPERSCRIPT TWO                  \u00B2   2     2     2    OtherNumber
U+00BC VULGAR FRACTION ONE QUARTER      \u00BC   0.25  -1    -1   OtherNumber
U+0BEF TAMIL DIGIT NINE                 \u0BEF   9     9     9    DecimalDigitNumber
U+0BF0 TAMIL NUMBER TEN                 \u0BF0   10    -1    -1   OtherNumber
U+0F33 TIBETAN DIGIT HALF ZERO          \u0F33   -0.5  -1    -1   OtherNumber
U+2788 CIRCLED SANS-SERIF DIGIT NINE    \u2788   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       \u0393   -1    -1    -1   UppercaseLetter
U+0039 DIGIT NINE                       9   9     9     9    DecimalDigitNumber
U+00B2 SUPERSCRIPT TWO                  \u00B2   2     2     2    OtherNumber
U+00BC VULGAR FRACTION ONE QUARTER      \u00BC   0.25  -1    -1   OtherNumber
U+0BEF TAMIL DIGIT NINE                 \u0BEF   9     9     9    DecimalDigitNumber
U+0BF0 TAMIL NUMBER TEN                 \u0BF0   10    -1    -1   OtherNumber
U+0F33 TIBETAN DIGIT HALF ZERO          \u0F33   -0.5  -1    -1   OtherNumber
U+2788 CIRCLED SANS-SERIF DIGIT NINE    \u2788   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       \u0393   -1    -1    -1   UppercaseLetter
'U+0039 DIGIT NINE                       9   9     9     9    DecimalDigitNumber
'U+00B2 SUPERSCRIPT TWO                  \u00B2   2     2     2    OtherNumber
'U+00BC VULGAR FRACTION ONE QUARTER      \u00BC   0.25  -1    -1   OtherNumber
'U+0BEF TAMIL DIGIT NINE                 \u0BEF   9     9     9    DecimalDigitNumber
'U+0BF0 TAMIL NUMBER TEN                 \u0BF0   10    -1    -1   OtherNumber
'U+0F33 TIBETAN DIGIT HALF ZERO          \u0F33   -0.5  -1    -1   OtherNumber
'U+2788 CIRCLED SANS-SERIF DIGIT NINE    \u2788   9     9     -1   OtherNumber

Uwagi

Standard Unicode definiuje wiele kategorii znaków Unicode.The Unicode Standard defines a number of Unicode character categories. Na przykład znak może być skategoryzowany jako Wielka litera, mała litera, cyfra dziesiętna, numer litery, separator akapitu, symbol matematyczny lub symbol waluty.For example, a character might be categorized as an uppercase letter, a lowercase letter, a decimal digit number, a letter number, a paragraph separator, a math symbol, or a currency symbol. Aplikacja może używać kategorii znaków do zarządzania operacjami opartymi na ciągach, takich jak analizowanie lub wyodrębnianie podciągów z wyrażeniami regularnymi.Your application can use the character category to govern string-based operations, such as parsing or extracting substring with regular expressions. UnicodeCategoryWyliczenie definiuje możliwe kategorie znaków.The UnicodeCategory enumeration defines the possible character categories.

Użyj klasy, CharUnicodeInfo Aby uzyskać UnicodeCategory wartość dla określonego znaku.You use the CharUnicodeInfo class to obtain the UnicodeCategory value for a specific character. CharUnicodeInfoKlasa definiuje metody, które zwracają następujące wartości znaków Unicode:The CharUnicodeInfo class defines methods that return the following Unicode character values:

  • Określona Kategoria, do której należy znak lub para dwuskładnikowa.The specific category to which a character or surrogate pair belongs. Zwracana wartość jest elementem członkowskim UnicodeCategory wyliczenia.The value returned is a member of the UnicodeCategory enumeration.

  • Wartość numeryczna.Numeric value. Stosuje się tylko do znaków numerycznych, w tym ułamków, indeksów dolnych, znaków łacińskich, cyfr rzymskich, liczebników walutowych i cyfr specyficznych dla skryptu.Applies only to numeric characters, including fractions, subscripts, superscripts, Roman numerals, currency numerators, encircled numbers, and script-specific digits.

  • Wartość cyfry.Digit value. Dotyczy znaków numerycznych, które mogą być połączone z innymi znakami liczbowymi w celu reprezentowania liczby całkowitej w systemie numeracji.Applies to numeric characters that can be combined with other numeric characters to represent a whole number in a numbering system.

  • Wartość cyfry dziesiętnej.Decimal digit value. Dotyczy tylko znaków, które reprezentują cyfry dziesiętne w systemie dziesiętnym (podstawowy 10).Applies only to characters that represent decimal digits in the decimal (base 10) system. Cyfra dziesiętna może być jedną z dziesięciu cyfr, od zera do dziewięciu.A decimal digit can be one of ten digits, from zero through nine. Te znaki są członkami UnicodeCategory.DecimalDigitNumber kategorii.These characters are members of the UnicodeCategory.DecimalDigitNumber category.

Ponadto CharUnicodeInfo Klasa jest używana wewnętrznie przez wiele innych typów .NET Framework i metod, które opierają się na klasyfikacji znaków.In addition, the CharUnicodeInfo class is used internally by a number of other .NET Framework types and methods that rely on character classification. Należą do nich:These include:

  • StringInfoKlasa, która współpracuje z elementami tekstowymi, a nie pojedynczymi znakami w ciągu.The StringInfo class, which works with textual elements instead of single characters in a string.

  • Przeciążenia Char.GetUnicodeCategory metody, które określają kategorię, do której należy znak lub para dwuskładnikowa.The overloads of the Char.GetUnicodeCategory method, which determine the category to which a character or surrogate pair belongs.

  • Klasy znaków rozpoznawane przez Regex , aparat wyrażeń regularnych .NET Framework.The character classes recognized by Regex, the .NET Framework's regular expression engine.

Korzystając z tej klasy w aplikacjach, należy pamiętać o następujących kwestiach związanych z programowaniem w przypadku korzystania z tego Char typu.When using this class in your applications, keep in mind the following programming considerations for using the Char type. Typ może być trudny do użycia, a ciągi są zwykle preferowane do reprezentowania zawartości lingwistycznej.The type can be difficult to use, and strings are generally preferable for representing linguistic content.

  • CharObiekt nie zawsze odpowiada pojedynczemu znakowi.A Char object does not always correspond to a single character. Chociaż Char Typ reprezentuje pojedynczą wartość 16-bitową, niektóre znaki (takie jak klastry Grapheme i pary surogatów) składają się z dwóch lub więcej jednostek kodu UTF-16.Although the Char type represents a single 16-bit value, some characters (such as grapheme clusters and surrogate pairs) consist of two or more UTF-16 code units. Aby uzyskać więcej informacji, zobacz "znaki obiektów i znaków Unicode" w String klasie.For more information, see "Char Objects and Unicode Characters" in the String class.

  • Pojęcie "Character" jest również elastyczne.The notion of a "character" is also flexible. Znak jest często uważany za symbol, ale wiele symboli wymaga wielu punktów kodowych.A character is often thought of as a glyph, but many glyphs require multiple code points. Na przykład ä może być reprezentowane przez dwa punkty kodu ("a" i U + 0308, które są łączące się z diaerezą) lub przez pojedynczy punkt kodu ("ä" lub U + 00A4).For example, ä can be represented either by two code points ("a" plus U+0308, which is the combining diaeresis), or by a single code point ("ä" or U+00A4). Niektóre języki zawierają wiele liter, znaków i symboli, które wymagają wielu punktów kodowych, co może spowodować pomyłkę w reprezentacji zawartości lingwistycznej.Some languages have many letters, characters, and glyphs that require multiple code points, which can cause confusion in linguistic content representation. Na przykład istnieje ΰ (U + 03B0, mała grecka litera Ypsilon z dialytika i akcent), ale nie istnieje odpowiednik wielkiej litery.For example, there is a ΰ (U+03B0, Greek small letter upsilon with dialytika and tonos), but there is no equivalent capital letter. Uppercasing takich wartości po prostu pobiera oryginalną wartość.Uppercasing such a value simply retrieves the original value.

Uwagi dotyczące wywoływania

Rozpoznane znaki i określone kategorie, do których należą, są zdefiniowane przez standard Unicode i mogą ulec zmianie z jednej wersji standardu Unicode na inną.Recognized characters and the specific categories to which they belong are defined by the Unicode standard and can change from one version of the Unicode Standard to another. Kategoryzacja znaków w określonej wersji .NET Framework jest oparta na jednej wersji standardu Unicode niezależnie od systemu operacyjnego, w którym jest uruchomiony .NET Framework.Categorization of characters in a particular version of the .NET Framework is based on a single version of the Unicode Standard regardless of the underlying operating system on which the .NET Framework is running. W poniższej tabeli wymieniono wersje .NET Framework od Program .NET Framework 4.NET Framework 4 i wersje standardu Unicode używane do klasyfikowania znaków.The following table lists versions of the .NET Framework since the Program .NET Framework 4.NET Framework 4 and the versions of the Unicode Standard used to classify characters.

Wersja programu .NET Framework.NET Framework version Wersja standardu UnicodeVersion of the Unicode Standard
[!INCLUDE[net_v40_long](~/includes/net-v40-long-md.md)] [Standard Unicode w wersji 5.0.0](https://www.unicode.org/versions/Unicode5.0.0/)

The Unicode Standard, Version 5.0.0

.NET Framework 4.5.NET Framework 4.5

[Standard Unicode w wersji 5.0.0](https://www.unicode.org/versions/Unicode5.0.0/)

The Unicode Standard, Version 5.0.0

.NET Framework 4.5.1.NET Framework 4.5.1

[Standard Unicode w wersji 5.0.0](https://www.unicode.org/versions/Unicode5.0.0/)

The Unicode Standard, Version 5.0.0

.NET Framework 4.5.2.NET Framework 4.5.2

[Standard Unicode w wersji 5.0.0](https://www.unicode.org/versions/Unicode5.0.0/)

The Unicode Standard, Version 5.0.0

Program .NET Framework 4.6.NET Framework 4.6

[Standard Unicode w wersji 6.3.0](https://www.unicode.org/versions/Unicode6.3.0/)

The Unicode Standard, Version 6.3.0

.NET Framework 4.6.1.NET Framework 4.6.1

[Standard Unicode w wersji 6.3.0](https://www.unicode.org/versions/Unicode6.3.0/)

The Unicode Standard, Version 6.3.0

.NET Framework 4.6.2.NET Framework 4.6.2

[Standard Unicode w wersji 8.0.0](https://www.unicode.org/versions/Unicode8.0.0/)

The Unicode Standard, Version 8.0.0

Każda wersja standardu Unicode zawiera informacje o zmianach w bazie danych znaków Unicode od poprzedniej wersji.Each version of the Unicode standard includes information on changes to the Unicode character database since the previous version. Baza danych znaków Unicode jest używana przez CharUnicodeInfo klasę do kategoryzacji znaków.The Unicode character database is used by the CharUnicodeInfo class for categorizing characters.

Metody

GetDecimalDigitValue(Char)

Pobiera wartość cyfry dziesiętnej określonego znaku numerycznego.Gets the decimal digit value of the specified numeric character.

GetDecimalDigitValue(String, Int32)

Pobiera wartość cyfry dziesiętnej znaku numerycznego w określonym indeksie określonego ciągu.Gets the decimal digit value of the numeric character at the specified index of the specified string.

GetDigitValue(Char)

Pobiera wartość cyfry określonego znaku numerycznego.Gets the digit value of the specified numeric character.

GetDigitValue(String, Int32)

Pobiera wartość cyfry znaku numerycznego w określonym indeksie określonego ciągu.Gets the digit value of the numeric character at the specified index of the specified string.

GetNumericValue(Char)

Pobiera wartość liczbową skojarzoną z określonym znakiem.Gets the numeric value associated with the specified character.

GetNumericValue(String, Int32)

Pobiera wartość liczbową skojarzoną ze znakiem w określonym indeksie określonego ciągu.Gets the numeric value associated with the character at the specified index of the specified string.

GetUnicodeCategory(Char)

Pobiera kategorię Unicode określonego znaku.Gets the Unicode category of the specified character.

GetUnicodeCategory(Int32)

Pobiera kategorię Unicode określonego znaku.Gets the Unicode category of the specified character.

GetUnicodeCategory(String, Int32)

Pobiera kategorię Unicode znaku w określonym indeksie określonego ciągu.Gets the Unicode category of the character at the specified index of the specified string.

Dotyczy

Zobacz też