CharUnicodeInfo CharUnicodeInfo CharUnicodeInfo CharUnicodeInfo Class

定義

Unicode 文字に関する情報を取得します。Retrieves information about a Unicode character. このクラスは継承できません。This class cannot be inherited.

public ref class CharUnicodeInfo abstract sealed
public static class CharUnicodeInfo
type CharUnicodeInfo = class
Public Class CharUnicodeInfo
継承
CharUnicodeInfoCharUnicodeInfoCharUnicodeInfoCharUnicodeInfo

次のコード例は、さまざまな種類の文字について、各メソッドによって返される値を示しています。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 'SamplesCharUnicodeInfo 


'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

注釈

Unicode 規格では、多くの unicode 文字カテゴリが定義されています。The Unicode Standard defines a number of Unicode character categories. たとえば、文字は、大文字、小文字、10進数字、文字番号、段落区切り記号、算術記号、または通貨記号として分類されます。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. アプリケーションでは、文字カテゴリを使用して、正規表現を使用した部分文字列の解析や抽出など、文字列ベースの操作を制御できます。Your application can use the character category to govern string-based operations, such as parsing or extracting substring with regular expressions. 列挙UnicodeCategory体は、使用可能な文字カテゴリを定義します。The UnicodeCategory enumeration defines the possible character categories.

特定の文字CharUnicodeInfoUnicodeCategory値を取得するには、クラスを使用します。You use the CharUnicodeInfo class to obtain the UnicodeCategory value for a specific character. クラスCharUnicodeInfoは、次の Unicode 文字値を返すメソッドを定義します。The CharUnicodeInfo class defines methods that return the following Unicode character values:

  • 文字またはサロゲートペアが属する特定のカテゴリ。The specific category to which a character or surrogate pair belongs. 返される値は、 UnicodeCategory列挙体のメンバーです。The value returned is a member of the UnicodeCategory enumeration.

  • 数値。Numeric value. 分数、添字、上付き文字、ローマ数字、通貨分子、encircled 番号、スクリプト固有の数字など、数字にのみ適用されます。Applies only to numeric characters, including fractions, subscripts, superscripts, Roman numerals, currency numerators, encircled numbers, and script-specific digits.

  • 桁の値。Digit value. 番号付けシステムの整数を表すために、他の数字と組み合わせて使用できる数字に適用されます。Applies to numeric characters that can be combined with other numeric characters to represent a whole number in a numbering system.

  • 10進数の値。Decimal digit value. 10進数 (基数 10) システムの10進数を表す文字にのみ適用されます。Applies only to characters that represent decimal digits in the decimal (base 10) system. 10進数の数字は、0 ~ 9 の10桁の数字にすることができます。A decimal digit can be one of ten digits, from zero through nine. これらの文字は、 UnicodeCategory.DecimalDigitNumberカテゴリのメンバーです。These characters are members of the UnicodeCategory.DecimalDigitNumber category.

さらに、 CharUnicodeInfoクラスは、文字分類に依存するその他のさまざまな .NET Framework 型およびメソッドによって内部的に使用されます。In addition, the CharUnicodeInfo class is used internally by a number of other .NET Framework types and methods that rely on character classification. 次の設定があります。These include:

  • StringInfoクラス。文字列内の単一の文字ではなく、テキスト要素を操作します。The StringInfo class, which works with textual elements instead of single characters in a string.

  • 文字またはサロゲートChar.GetUnicodeCategoryペアが属するカテゴリを決定する、メソッドのオーバーロード。The overloads of the Char.GetUnicodeCategory method, which determine the category to which a character or surrogate pair belongs.

  • によってRegex認識される文字クラス、.NET Framework の正規表現エンジン。The character classes recognized by Regex, the .NET Framework's regular expression engine.

アプリケーションでこのクラスを使用する場合は、 Char型を使用するための次のプログラミング上の考慮事項に注意してください。When using this class in your applications, keep in mind the following programming considerations for using the Char type. 型を使用することは困難であり、通常は言語のコンテンツを表すために文字列を使用することをお勧めします。The type can be difficult to use, and strings are generally preferable for representing linguistic content.

  • オブジェクトCharは、常に1つの文字に対応するとは限りません。A Char object does not always correspond to a single character. 型はChar 1 つの16ビット値を表しますが、一部の文字 (書記素クラスターやサロゲートペアなど) は、2つ以上の 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. 詳細については、クラスのString 「Char オブジェクトと Unicode 文字」を参照してください。For more information, see "Char Objects and Unicode Characters" in the String class.

  • "文字" の概念も柔軟です。The notion of a "character" is also flexible. 文字はグリフと見なされることがよくありますが、多くのグリフには複数のコードポイントが必要です。A character is often thought of as a glyph, but many glyphs require multiple code points. たとえば、äは、2つのコードポイント ("a" + U + 0308 の組み合わせ、ウムラウト)、または単一のコードポイント ("ä" または 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). 言語によっては、複数のコードポイントを必要とする文字、文字、グリフが多数ある場合があります。これにより、言語のコンテンツ表現が混乱する可能性があります。Some languages have many letters, characters, and glyphs that require multiple code points, which can cause confusion in linguistic content representation. たとえば、ΰ (U + 03B0、ギリシャ文字ウプシロンと tonytika、tonos) がありますが、それに相当する資本文字はありません。For example, there is a ΰ (U+03B0, Greek small letter upsilon with dialytika and tonos), but there is no equivalent capital letter. このような値を Uppercasing は、単に元の値を取得します。Uppercasing such a value simply retrieves the original value.

注意 (呼び出し元)

認識される文字と、それらが属する特定のカテゴリは Unicode 規格によって定義され、Unicode 標準のあるバージョンから別のバージョンに変更できます。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. .NET Framework の特定のバージョンの文字の分類は、.NET Framework が実行されている基になるオペレーティングシステムに関係なく、Unicode 標準の1つのバージョンに基づいています。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. 次の表は、と、 .NET Framework 4.NET Framework 4文字の分類に使用される Unicode 標準のバージョン以降の .NET Framework のバージョンを示しています。The following table lists versions of the .NET Framework since the .NET Framework 4.NET Framework 4 and the versions of the Unicode Standard used to classify characters.

.NET Framework のバージョン.NET Framework version Unicode 標準のバージョンVersion of the Unicode Standard
[!INCLUDE[net_v40_long](~/includes/net-v40-long-md.md)] [Unicode Standard、バージョン5.0.0](https://www.unicode.org/versions/Unicode5.0.0/) [The Unicode Standard, Version 5.0.0](https://www.unicode.org/versions/Unicode5.0.0/)
[!INCLUDE[net_v45](~/includes/net-v45-md.md)] [Unicode Standard、バージョン5.0.0](https://www.unicode.org/versions/Unicode5.0.0/) [The Unicode Standard, Version 5.0.0](https://www.unicode.org/versions/Unicode5.0.0/)
[!INCLUDE[net_v451](~/includes/net-v451-md.md)] [Unicode Standard、バージョン5.0.0](https://www.unicode.org/versions/Unicode5.0.0/) [The Unicode Standard, Version 5.0.0](https://www.unicode.org/versions/Unicode5.0.0/)
[!INCLUDE[net_v452](~/includes/net-v452-md.md)] [Unicode Standard、バージョン5.0.0](https://www.unicode.org/versions/Unicode5.0.0/) [The Unicode Standard, Version 5.0.0](https://www.unicode.org/versions/Unicode5.0.0/)
[!INCLUDE[net_v46](~/includes/net-v46-md.md)] [Unicode Standard、Version 6.3.0](https://www.unicode.org/versions/Unicode6.3.0/) [The Unicode Standard, Version 6.3.0](https://www.unicode.org/versions/Unicode6.3.0/)
[!INCLUDE[net_v461](~/includes/net-v461-md.md)] [Unicode Standard、Version 6.3.0](https://www.unicode.org/versions/Unicode6.3.0/) [The Unicode Standard, Version 6.3.0](https://www.unicode.org/versions/Unicode6.3.0/)
[!INCLUDE[net_v462](~/includes/net-v462-md.md)] [Unicode Standard、Version 8.0.0](https://www.unicode.org/versions/Unicode8.0.0/) [The Unicode Standard, Version 8.0.0](https://www.unicode.org/versions/Unicode8.0.0/)

Unicode 標準の各バージョンには、以前のバージョン以降の Unicode 文字データベースへの変更に関する情報が含まれています。Each version of the Unicode standard includes information on changes to the Unicode character database since the previous version. Unicode 文字データベースは、文字を分類CharUnicodeInfoするためにクラスによって使用されます。The Unicode character database is used by the CharUnicodeInfo class for categorizing characters.

メソッド

GetDecimalDigitValue(Char) GetDecimalDigitValue(Char) GetDecimalDigitValue(Char) GetDecimalDigitValue(Char)

指定した数字の 10 進値を取得します。Gets the decimal digit value of the specified numeric character.

GetDecimalDigitValue(String, Int32) GetDecimalDigitValue(String, Int32) GetDecimalDigitValue(String, Int32) GetDecimalDigitValue(String, Int32)

指定した文字列の指定したインデックス位置にある数字の 10 進値を取得します。Gets the decimal digit value of the numeric character at the specified index of the specified string.

GetDigitValue(Char) GetDigitValue(Char) GetDigitValue(Char) GetDigitValue(Char)

指定した数字の桁の値を取得します。Gets the digit value of the specified numeric character.

GetDigitValue(String, Int32) GetDigitValue(String, Int32) GetDigitValue(String, Int32) GetDigitValue(String, Int32)

指定した文字列の指定したインデックス位置にある数字の桁の値を取得します。Gets the digit value of the numeric character at the specified index of the specified string.

GetNumericValue(Char) GetNumericValue(Char) GetNumericValue(Char) GetNumericValue(Char)

指定した文字に関連付けられている数値を取得します。Gets the numeric value associated with the specified character.

GetNumericValue(String, Int32) GetNumericValue(String, Int32) GetNumericValue(String, Int32) GetNumericValue(String, Int32)

指定した文字列の指定したインデックス位置にある文字に関連付けられている数値を取得します。Gets the numeric value associated with the character at the specified index of the specified string.

GetUnicodeCategory(Char) GetUnicodeCategory(Char) GetUnicodeCategory(Char) GetUnicodeCategory(Char)

指定した文字の Unicode カテゴリを取得します。Gets the Unicode category of the specified character.

GetUnicodeCategory(Int32) GetUnicodeCategory(Int32) GetUnicodeCategory(Int32) GetUnicodeCategory(Int32)
GetUnicodeCategory(String, Int32) GetUnicodeCategory(String, Int32) GetUnicodeCategory(String, Int32) GetUnicodeCategory(String, Int32)

指定した文字列の指定したインデックス位置にある文字の Unicode カテゴリを取得します。Gets the Unicode category of the character at the specified index of the specified string.

適用対象

こちらもご覧ください