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メソッドと組み合わせて使うことで、コードポイントと文字列の相互変換を簡単に行うことができます。
-
C#のChar.IsSymbol()メソッドとは?文字が記号かどうかを判定する方法を解説
Char.IsSymbol()メソッドとはC#のChar.IsSymbol()メソッドは、指定された文字列内の指定位置にある文字が、Unicodeの「記号(Symbol)」カテゴリに分類されているかどうかを判定するメソッドです。戻り値はbool型で、記号であればtrue、そうでなければfalseを返します。判定対象となるのは、数学記号(+、=など)、通貨記号($、¥など)、修飾記号、その他の記号といったUnicode記号カテゴリに属する文字です。構文public static bool IsSymbol (string str, int index);パラメータstr:評価対象の文字列inde
-
【C#入門】Char.IsControl(String, Int32)メソッドの使い方を解説
C#のChar.IsControl(String, Int32)メソッドは、指定した文字列の中から指定された位置にある文字が「制御文字」に分類されるかどうかを判定するためのメソッドです。制御文字とは、画面上には表示されず、改行やタブなどの特殊な動作を表す文字のことを指します。構文public static bool IsControl (string str, int index);各パラメータの意味は以下の通りです。str: 判定対象となる文字列index: str 内で評価する文字の位置(インデックス)戻り値はbool型で、指定位置の文字が制御文字であれば true、そうでなければ fal