C#のChar.IsSurrogatePair(String, Int32)メソッドとは?使い方を解説
C#のChar.IsSurrogatePair()メソッドは、文字列内の指定した位置にある隣接する2つのCharオブジェクトが、サロゲートペアを構成するかどうかを判定するために使用されます。
サロゲートペアとは、UTF-16エンコーディングにおいて1つの文字(コードポイント)を表すために組み合わせて使用される、上位サロゲートと下位サロゲートの2つのコード単位のことです。
構文
構文は以下のとおりです。
public static bool IsSurrogatePair (string str, int index);
各パラメータの意味は次のとおりです。
- str:判定対象となる文字列。
- index:str内で評価する文字ペアの開始位置。
戻り値
指定された位置の2文字がサロゲートペアを構成する場合は true、そうでない場合は false を返します。
例
それでは、Char.IsSurrogatePair()メソッドを使用した例を見てみましょう。
using System;
public class Demo {
public static void Main(){
string str = new String(new char[] { 'k', 'm', 'g', 't', '\uD800' });
bool res = Char.IsSurrogatePair(str, 4);
if (res)
Console.WriteLine("Contains Surrogate pair!");
else
Console.WriteLine("Does not contain Surrogate pair!");
}
}出力
このコードを実行すると、以下の出力が得られます。
Does not contain Surrogate pair!
この例では、インデックス4に上位サロゲート(\uD800)が存在しますが、その直後に下位サロゲートがないため、falseが返されています。
例
続いて、別の例を見てみましょう。
using System;
public class Demo {
public static void Main(){
string str = new String(new char[] { 'k','l','a', '\uD800', '\uDC00' });
bool res = Char.IsSurrogatePair(str, 3);
if (res)
Console.WriteLine("Contains Surrogate pair!");
else
Console.WriteLine("Does not contain Surrogate pair!");
}
}出力
このコードを実行すると、以下の出力が得られます。
Contains Surrogate pair!
この例では、インデックス3の上位サロゲート(\uD800)とインデックス4の下位サロゲート(\uDC00)が隣接して正しいペアを構成しているため、trueが返されています。
-
【C#入門】Char.IsControl(String, Int32)メソッドの使い方を解説
C#のChar.IsControl(String, Int32)メソッドは、指定した文字列の中から指定された位置にある文字が「制御文字」に分類されるかどうかを判定するためのメソッドです。制御文字とは、画面上には表示されず、改行やタブなどの特殊な動作を表す文字のことを指します。構文public static bool IsControl (string str, int index);各パラメータの意味は以下の通りです。str: 判定対象となる文字列index: str 内で評価する文字の位置(インデックス)戻り値はbool型で、指定位置の文字が制御文字であれば true、そうでなければ fal
-
C#でInt32を文字列として表現する方法
Int32は、32ビットの符号付き整数を表す型です。この値を文字列として扱いたい場合は、ToString()メソッドを使用します。ToString()メソッドは、数値をそのまま文字列形式に変換してくれるため、コンソール出力や文字列の連結などで非常に便利です。基本的な使い方まず、Int32型の変数を宣言し、値を初期化します。int val = 1023;次に、ToString()メソッドを呼び出して、変数の値を文字列として取得します。val.ToString()サンプルコード以下は、Int32の値を文字列に変換して表示する完全な例です。using System; class Demo { &nb