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

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

概要

C#のChar.IsLowSurrogate()メソッドは、文字列内の指定された位置にあるCharオブジェクトが「低サロゲート」(下位サロゲート)であるかどうかを判定する静的メソッドです。

サロゲートとは、Unicodeの補助文字(U+10000以降のコードポイント)をUTF-16形式で表現するために使われる特別なコードユニットのことです。サロゲートペアは、上位サロゲート(U+D800〜U+DBFF)と下位サロゲート(U+DC00〜U+DFFF)の組み合わせで構成されます。

構文

C#における構文は以下の通りです。

public static bool IsLowSurrogate(string str, int index);

各パラメータの意味は以下の通りです。

  • str: 判定対象の文字列
  • index: str内で評価する文字の位置(0から始まるインデックス)

指定した位置の文字が低サロゲートであればtrueを、そうでなければfalseを返します。

それでは、Char.IsLowSurrogate()メソッドを実装した例を見てみましょう。

using System;
public class Demo {
   public static void Main(){
      string str = new String(new char[] { 'k', 'm', 'g', 't', 'j', 'p', '\uDC00' });
      bool res = Char.IsLowSurrogate(str, 6);
      if (res)
         Console.WriteLine("低サロゲート値が含まれています!");
      else
         Console.WriteLine("低サロゲート値は含まれていません!");
  }
}

出力

このコードを実行すると、次のような結果が出力されます。

低サロゲート値が含まれています!

この例では、インデックス6の位置にある文字「\uDC00」が有効な低サロゲートであるため、メソッドはtrueを返します。

別の例

次に、低サロゲート以外の文字を指定した場合の例を見てみましょう。

using System;
public class Demo {
   public static void Main(){
      string str = new String(new char[] { 'k', 'm', 'g', 't', 'j', 'p', '\uDC00' });
      bool res = Char.IsLowSurrogate(str, 3);
      if (res)
         Console.WriteLine("低サロゲート値が含まれています!");
      else
         Console.WriteLine("低サロゲート値は含まれていません!");
  }
}

出力

このコードを実行すると、次のような結果が出力されます。

低サロゲート値は含まれていません!

この例では、インデックス3の位置にある文字は「t」であり、低サロゲートではないため、メソッドはfalseを返します。

まとめ

Char.IsLowSurrogate(String, Int32)メソッドを使えば、文字列内の任意の位置にある文字が低サロゲートかどうかを簡単に確認できます。サロゲートペアを扱う処理や、Unicode文字列を正確に解析・検証したい場合に非常に便利なメソッドです。

  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