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

C#のEquals(String、String)メソッドとは?文字列比較の基本と使い方を解説

C#のEquals()メソッドは、2つのStringオブジェクトが同じ値を持っているかどうかを判定するために使用されるメソッドです。文字列同士を比較し、値が一致していればtrue、一致していなければfalseを返します。

構文

bool string.Equals(string s1, string s2)

上記の構文において、s1s2は比較対象となる文字列です。戻り値はbool型で、両者の値が等しい場合にtrueが返されます。

使用例1:異なる文字列と同じ参照の文字列を比較

まず、異なる値を持つ文字列と、同一の参照を持つ文字列を比較する例を見てみましょう。

using System;
public class Demo {
   public static void Main(string[] args) {
      string s1 = "Kevin";
      string s2 = "Tom";
      string s3 = s2;
      Console.WriteLine("String1 = "+s1);
      Console.WriteLine("String2 = "+s2);
      Console.WriteLine("Are both the strings equal? = "+s1.Equals(s2));
      Console.WriteLine("Are both the strings equal? = "+s2.Equals(s3));
   }
}

出力結果

String1 = Kevin
String2 = Tom
Are both the strings equal? = False
Are both the strings equal? = True

この例では、s1(Kevin)とs2(Tom)は値が異なるためfalseが返されます。一方、s3s2と同じ参照を持つため、s2.Equals(s3)trueとなります。

使用例2:複数の文字列を組み合わせて比較

次に、5つの文字列変数を使って、さまざまな組み合わせでEquals()メソッドを試してみます。

using System;
public class Demo {
   public static void Main(string[] args) {
      string s1 = "David";
      string s2 = "David";
      string s3 = s2;
      string s4 = "Tom";
      string s5 = s4;
      Console.WriteLine("String1 = "+s1);
      Console.WriteLine("String2 = "+s2);
      Console.WriteLine("String3 = "+s3);
      Console.WriteLine("String4 = "+s4);
      Console.WriteLine("String5 = "+s5);
      Console.WriteLine("Is s1 and s2 equal? = "+s1.Equals(s2));
      Console.WriteLine("Is s2 and s3 equal? = "+s2.Equals(s3));
      Console.WriteLine("Is s3 and s4 equal? = "+s3.Equals(s4));
      Console.WriteLine("Is s4 and s5 equal? = "+s4.Equals(s5));
   }
}

出力結果

String1 = David
String2 = David
String3 = David
String4 = Tom
String5 = Tom
Is s1 and s2 equal? = True
Is s2 and s3 equal? = True
Is s3 and s4 equal? = False
Is s4 and s5 equal? = True

解説のポイント

  • s1s2は別々に宣言されていますが、どちらも「David」という同じ値を持つため、trueが返されます。
  • s3s2への参照代入なので、当然ながらtrueとなります。
  • s3(David)とs4(Tom)は値が異なるため、falseが返されます。
  • s4s5は同じ参照を持つため、trueが返されます。

このように、C#のEquals()メソッドは参照の同一性だけでなく値の等価性を判定するため、別々の変数に格納された同じ内容の文字列でもtrueが返る点が特徴です。文字列比較を行う際には、==演算子との違いも理解しておくと、より安全なコードを書くことができます。

  1. C#のConsole.SetBufferSize()メソッドの使い方を徹底解説

    C#におけるConsole.SetBufferSize()メソッドは、コンソール画面のバッファ領域(スクリーンバッファ)の幅と高さを指定した値に設定するために使用されるメソッドです。コンソールアプリケーションで表示領域をカスタマイズしたい場合に活用できます。構文Console.SetBufferSize()メソッドの構文は以下の通りです。public static void SetBufferSize (int width, int height);各パラメータの意味は次のようになっています。width: バッファ領域の幅(列数)を指定します。height: バッファ領域の高さ(行数)を指定し

  2. C#のConsole.ResetColor()メソッドの使い方を解説

    概要C#のConsole.ResetColor()メソッドは、コンソールの前景色(文字色)と背景色を、既定の配色に戻すために使用されます。プログラム内で一時的に文字色や背景色を変更した後、元の状態へ復元したい場合に非常に便利です。構文ResetColor()メソッドの構文は以下のとおりです。public static void ResetColor ();このメソッドは引数を受け取らず、戻り値もありません。また、staticメソッドであるため、インスタンスを生成することなく、Consoleクラスから直接呼び出すことができます。使用例それでは、C#でConsole.ResetColor()メソッ