CharUnicodeInfo クラス

定義

Unicode 文字に関する情報を取得します。 このクラスは継承できません。

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
継承
CharUnicodeInfo

次のコード例は、さまざまな種類の文字に対して各メソッドによって返される値を示しています。

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

注釈

Unicode 標準では、多数の Unicode 文字カテゴリが定義されています。 たとえば、文字は大文字、小文字、10 進数、文字番号、段落区切り記号、数学記号、通貨記号として分類できます。 アプリケーションでは、文字カテゴリを使用して、正規表現を使用した部分文字列の解析や抽出などの文字列ベースの操作を管理できます。 列挙体は UnicodeCategory 、使用可能な文字カテゴリを定義します。

クラスを CharUnicodeInfo 使用して、特定の文字の UnicodeCategory 値を取得します。 クラスは CharUnicodeInfo 、次の Unicode 文字値を返すメソッドを定義します。

  • 文字またはサロゲート のペアが属する特定のカテゴリ。 返される値は、 列挙体の UnicodeCategory メンバーです。

  • 数値。 分数、下付き文字、上付き文字、ローマ数字、通貨分子、円記号付き数字、スクリプト固有の数字を含む数字にのみ適用されます。

  • 数字の値。 他の数値と組み合わせて、番号付けシステムの整数を表すことができる数値に適用されます。

  • 10 進数の値。 10 進数 (底 10) システムの 10 進数を表す文字にのみ適用されます。 10 進数には、0 から 9 までの 10 桁の数字のいずれかを指定できます。 これらの文字は、カテゴリの UnicodeCategory.DecimalDigitNumber メンバーです。

さらに、 クラスは、 CharUnicodeInfo 文字分類に依存する他の多くの .NET 型とメソッドによって内部的に使用されます。 次の設定があります。

  • クラス。 StringInfo これは、文字列内の 1 文字ではなくテキスト要素で動作します。

  • 文字またはサロゲートペアが Char.GetUnicodeCategory 属するカテゴリを決定する メソッドのオーバーロード。

  • Regex認識される文字クラス。NET の正規表現エンジン。

アプリケーションでこのクラスを使用する場合は、 型の使用に関する次のプログラミング上の考慮事項に Char 注意してください。 型は使いにくい場合があり、言語コンテンツを表すには文字列が一般的に適しています。

  • オブジェクトが Char 常に 1 文字に対応するとは限りません。 型は Char 1 つの 16 ビット値を表しますが、一部の文字 (grapheme クラスターやサロゲート ペアなど) は、2 つ以上の UTF-16 コード単位で構成されます。 詳細については、 クラスの「Char オブジェクトと Unicode 文字」 String を参照してください。

  • "文字" の概念も柔軟です。 文字はグリフと見なされることが多いですが、多くのグリフでは複数のコード ポイントが必要です。 たとえば、ä は 2 つのコード ポイント ("a" と U+0308 の組み合わせの diaeresis) または 1 つのコード ポイント ("ä" または U+00A4) で表すことができます。 一部の言語には、複数のコード ポイントを必要とする文字、文字、グリフが多数あり、言語コンテンツの表現に混乱が生じる可能性があります。 たとえば、ΰ (U+03B0、ギリシャ語の小文字 upsilon と dialytika と tonos) がありますが、同等の大文字はありません。 このような値を上位に設定すると、単に元の値が取得されます。

注意 (呼び出し元)

認識された文字と、それらが属する特定のカテゴリは Unicode 標準によって定義され、Unicode 標準の 1 つのバージョンから別のバージョンに変更できます。 .NET Frameworkの特定のバージョンでの文字の分類は、.NET Frameworkが実行されている基になるオペレーティング システムに関係なく、Unicode 標準の単一バージョンに基づいています。 次の表に、.NET Framework 4 以降の.NET Frameworkのバージョンと、文字の分類に使用される Unicode 標準のバージョンを示します。

.NET Framework のバージョン Unicode Standard バージョン
.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 標準の各バージョンには、以前のバージョン以降の Unicode 文字データベースへの変更に関する情報が含まれています。 Unicode 文字データベースは、文字を CharUnicodeInfo 分類するために クラスによって使用されます。

メソッド

GetDecimalDigitValue(Char)

指定した数字の 10 進値を取得します。

GetDecimalDigitValue(String, Int32)

指定した文字列の指定したインデックス位置にある数字の 10 進値を取得します。

GetDigitValue(Char)

指定した数字の桁の値を取得します。

GetDigitValue(String, Int32)

指定した文字列の指定したインデックス位置にある数字の桁の値を取得します。

GetNumericValue(Char)

指定した文字に関連付けられている数値を取得します。

GetNumericValue(String, Int32)

指定した文字列の指定したインデックス位置にある文字に関連付けられている数値を取得します。

GetUnicodeCategory(Char)

指定した文字の Unicode カテゴリを取得します。

GetUnicodeCategory(Int32)

指定した文字の Unicode カテゴリを取得します。

GetUnicodeCategory(String, Int32)

指定した文字列の指定したインデックス位置にある文字の Unicode カテゴリを取得します。

適用対象

こちらもご覧ください