C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のChar.ConvertToUtf32(String, Int32)メソッドの使い方を徹底解説

C#のChar.ConvertToUtf32(String, Int32)メソッドは、文字列内の指定した位置にあるUTF-16でエンコードされた文字またはサロゲートペアの値を、Unicodeコードポイントに変換するために使用されます。

このメソッドを使うことで、UTF-16形式の文字列データから元のUnicodeコードポイント(int型の数値)を取得できます。特にサロゲートペアを含む文字列を扱う際に役立ちます。

構文

このメソッドの構文は以下のとおりです。

public static int ConvertToUtf32 (string str, int index);

パラメータ

  • str: 文字またはサロゲートペアを含む文字列です。
  • index: str内における、対象の文字またはサロゲートペアのインデックス位置(0から始まる)です。

戻り値は、指定された位置の文字またはサロゲートペアに対応するUnicodeコードポイント(21ビット整数値)となります。

使用例1

まず、基本的な使用例を見てみましょう。以下のコードでは、ConvertFromUtf32メソッドでコードポイントから文字列を生成し、その後ConvertToUtf32メソッドで元のコードポイントに戻しています。

using System;
public class Demo {
    public static void Main(){
        int utf = 0x046;
        string str = Char.ConvertFromUtf32(utf);
        Console.WriteLine("Final Value = " + str);
        int res = Char.ConvertToUtf32(str, 0);
        Console.WriteLine("Actual Value = 0x{0:X}", res);
    }
}

出力結果

上記のコードを実行すると、次のような出力が得られます。

Final Value = F
Actual Value = 0x46

コードポイント0x46は英字「F」に対応しており、ConvertFromUtf32で「F」という文字列に変換され、ConvertToUtf32によって再び0x46というコードポイントに戻っていることが確認できます。

使用例2

続いて、別のコードポイントを使用した例を見てみましょう。

using System;
public class Demo {
    public static void Main(){
        int utf = 0x057;
        string str = Char.ConvertFromUtf32(utf);
        Console.WriteLine("Final Value = " + str);
        int res = Char.ConvertToUtf32(str, 0);
        Console.WriteLine("Actual Value = 0x{0:X}", res);
    }
}

出力結果

実行すると、以下の出力が得られます。

Final Value = W
Actual Value = 0x57

コードポイント0x57は英字「W」に対応しており、同様に文字列への変換と、その逆変換が正しく行われていることがわかります。

まとめ

Char.ConvertToUtf32(String, Int32)メソッドは、UTF-16エンコードされた文字やサロゲートペアからUnicodeコードポイントを取得するための便利なメソッドです。ConvertFromUtf32メソッドと組み合わせて使うことで、コードポイントと文字列の相互変換を簡単に行うことができます。

  1. C#のChar.IsSymbol()メソッドとは?文字が記号かどうかを判定する方法を解説

    Char.IsSymbol()メソッドとはC#のChar.IsSymbol()メソッドは、指定された文字列内の指定位置にある文字が、Unicodeの「記号(Symbol)」カテゴリに分類されているかどうかを判定するメソッドです。戻り値はbool型で、記号であればtrue、そうでなければfalseを返します。判定対象となるのは、数学記号(+、=など)、通貨記号($、¥など)、修飾記号、その他の記号といったUnicode記号カテゴリに属する文字です。構文public static bool IsSymbol (string str, int index);パラメータstr:評価対象の文字列inde

  2. 【C#入門】Char.IsControl(String, Int32)メソッドの使い方を解説

    C#のChar.IsControl(String, Int32)メソッドは、指定した文字列の中から指定された位置にある文字が「制御文字」に分類されるかどうかを判定するためのメソッドです。制御文字とは、画面上には表示されず、改行やタブなどの特殊な動作を表す文字のことを指します。構文public static bool IsControl (string str, int index);各パラメータの意味は以下の通りです。str: 判定対象となる文字列index: str 内で評価する文字の位置(インデックス)戻り値はbool型で、指定位置の文字が制御文字であれば true、そうでなければ fal