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

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が返されています。

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

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

  2. C#でInt32を文字列として表現する方法

    Int32は、32ビットの符号付き整数を表す型です。この値を文字列として扱いたい場合は、ToString()メソッドを使用します。ToString()メソッドは、数値をそのまま文字列形式に変換してくれるため、コンソール出力や文字列の連結などで非常に便利です。基本的な使い方まず、Int32型の変数を宣言し、値を初期化します。int val = 1023;次に、ToString()メソッドを呼び出して、変数の値を文字列として取得します。val.ToString()サンプルコード以下は、Int32の値を文字列に変換して表示する完全な例です。using System; class Demo { &nb