Aracılığıyla paylaş


CharUnicodeInfo Sınıf

Tanım

Unicode karakteri hakkındaki bilgileri alır. Bu sınıf devralınamaz.

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

Örnekler

Aşağıdaki kod örneği, farklı karakter türleri için her yöntem tarafından döndürülen değerleri gösterir.

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

Açıklamalar

Unicode Standardı, bir dizi Unicode karakter kategorisi tanımlar. Örneğin, bir karakter büyük harf, küçük harf, ondalık basamak numarası, harf numarası, paragraf ayırıcısı, matematik simgesi veya para birimi simgesi olarak kategorilere ayrılabilir. Uygulamanız, normal ifadelerle alt dize ayrıştırma veya ayıklama gibi dize tabanlı işlemleri yönetmek için karakter kategorisini kullanabilir. Numaralandırma olası UnicodeCategory karakter kategorilerini tanımlar.

Belirli bir karakterin CharUnicodeInfoUnicodeCategory değerini almak için sınıfını kullanın. sınıfı, CharUnicodeInfo aşağıdaki Unicode karakter değerlerini döndüren yöntemleri tanımlar:

  • Bir karakter veya vekil çiftin ait olduğu belirli kategori. Döndürülen değer, numaralandırmanın UnicodeCategory bir üyesidir.

  • Sayısal değer. Yalnızca kesirler, alt simgeler, üst simgeler, Roma rakamları, para birimi payları, çevrelenmiş sayılar ve betiklere özgü basamaklar gibi sayısal karakterler için geçerlidir.

  • Basamak değeri. Numaralandırma sistemindeki bir tamsayıyı temsil etmek için diğer sayısal karakterlerle birleştirilebilen sayısal karakterler için geçerlidir.

  • Ondalık basamak değeri. Yalnızca ondalık (10 tabanı) sistemindeki ondalık basamakları temsil eden karakterler için geçerlidir. Ondalık basamak, sıfırdan dokuza kadar on basamaktan biri olabilir. Bu karakterler kategorinin UnicodeCategory.DecimalDigitNumber üyeleridir.

Buna ek olarak, sınıfı karakter sınıflandırmasını CharUnicodeInfo kullanan bir dizi diğer .NET türü ve yöntemi tarafından dahili olarak kullanılır. Bu modüller şunlardır:

  • bir dizedeki StringInfo tek karakterler yerine metin öğeleriyle çalışan sınıfı.

  • Bir karakter veya vekil çiftin Char.GetUnicodeCategory ait olduğu kategoriyi belirleyen yönteminin aşırı yüklemeleri.

  • tarafından tanınan Regexkarakter sınıfları. NET'in normal ifade altyapısı.

Uygulamalarınızda bu sınıfı kullanırken, türünü kullanmak Char için aşağıdaki programlama konularını göz önünde bulundurun. Türün kullanılması zor olabilir ve dizeler genellikle dil içeriğini temsil etmek için tercih edilir.

  • Nesne Char her zaman tek bir karaktere karşılık gelmez. Tür tek bir 16 bit değeri temsil ediyor olsa da Char , bazı karakterler (grapheme kümeleri ve vekil çiftleri gibi) iki veya daha fazla UTF-16 kod biriminden oluşur. Daha fazla bilgi için sınıfındaki "Char Nesneleri ve Unicode Karakterleri" bölümüne String bakın.

  • Bir "karakter" de esnektir. Bir karakter genellikle bir glif olarak düşünülür, ancak birçok karakter birden çok kod noktası gerektirir. Örneğin, ğiki kod noktasıyla ("a" artı U+0308, yani birleştirme diyaerezi) veya tek bir kod noktasıyla ("ä" veya U+00A4) temsil edilebilir. Bazı dillerde birden çok kod noktası gerektiren birçok harf, karakter ve glif vardır ve bu da dilsel içerik gösteriminde karışıklığa neden olabilir. Örneğin, ΰ (U+03B0, dialytika ve tonos içeren Yunanca küçük harf upsilonu) vardır, ancak eşdeğer büyük harf yoktur. Böyle bir değerin büyük harfle eklenmesi, yalnızca özgün değeri alır.

Arayanlara Notlar

Tanınan karakterler ve ait oldukları belirli kategoriler Unicode standardı tarafından tanımlanır ve Unicode Standardının bir sürümünden diğerine değişebilir. .NET Framework belirli bir sürümündeki karakterlerin kategorilere ayrılması, .NET Framework çalıştığı temel işletim sisteminden bağımsız olarak Unicode Standard'ın tek bir sürümünü temel alır. Aşağıdaki tabloda .NET Framework 4'ten bu yana .NET Framework sürümleri ve karakterleri sınıflandırmak için kullanılan Unicode Standart sürümleri listelenmektedir.

.NET Framework sürümü Unicode Standart sürümü
.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

Unicode standardının her sürümü, önceki sürümden bu yana Unicode karakter veritabanında yapılan değişiklikler hakkında bilgi içerir. Unicode karakter veritabanı, sınıf tarafından CharUnicodeInfo karakterleri kategorilere ayırmak için kullanılır.

Yöntemler

GetDecimalDigitValue(Char)

Belirtilen sayısal karakterin ondalık basamak değerini alır.

GetDecimalDigitValue(String, Int32)

Belirtilen dizenin belirtilen dizinindeki sayısal karakterin ondalık basamak değerini alır.

GetDigitValue(Char)

Belirtilen sayısal karakterin basamak değerini alır.

GetDigitValue(String, Int32)

Belirtilen dizenin belirtilen dizinindeki sayısal karakterin basamak değerini alır.

GetNumericValue(Char)

Belirtilen karakterle ilişkili sayısal değeri alır.

GetNumericValue(String, Int32)

Belirtilen dizenin belirtilen dizinindeki karakterle ilişkili sayısal değeri alır.

GetUnicodeCategory(Char)

Belirtilen karakterin Unicode kategorisini alır.

GetUnicodeCategory(Int32)

Belirtilen karakterin Unicode kategorisini alır.

GetUnicodeCategory(String, Int32)

Belirtilen dizenin belirtilen dizinindeki karakterin Unicode kategorisini alır.

Şunlara uygulanır

Ayrıca bkz.