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

C#のString.Contains()メソッドの使い方をサンプルコード付きで解説

C#のString.Contains()メソッドは、指定した部分文字列が対象の文字列内に存在するかどうかを判定し、その結果をbool型(true / false)として返すメソッドです。文字列の検索や条件分岐の処理で頻繁に利用される、基本的かつ重要なメソッドの一つです。

構文

public bool Contains (string val);

引数のvalには、検索したい部分文字列を指定します。対象の文字列内に該当する部分文字列が見つかった場合はtrue、見つからなかった場合はfalseが返されます。

サンプルコード①:部分文字列が含まれる場合

using System;
public class Demo {
    public static void Main(String[] args) {
        string str1 = "Akon";
        string str2 = "Ak";
        Console.WriteLine("String 1 = "+str1);
        Console.WriteLine("HashCode of String 1 = "+str1.GetHashCode());
        Console.WriteLine("String 2 = "+str2);
        Console.WriteLine("HashCode of String 2 = "+str2.GetHashCode());
        Console.WriteLine("String 1 is equal to String 2: {0}", str1.Equals(str2));
        Console.WriteLine("Does String 1 has String 2 = "+str1.Contains(str2));
    }
}

実行結果

String 1 = Akon
HashCode of String 1 = 416613838
String 2 = Ak
HashCode of String 2 = -839927841
String 1 is equal to String 2: False
Does String 1 has String 2 = True

この例では、文字列「Akon」の中に「Ak」という部分文字列が含まれているかどうかを確認しています。「Ak」は「Akon」の先頭部分と一致するため、Contains()メソッドはTrueを返しています。一方、Equals()メソッドによる完全一致の比較結果はFalseとなる点にも注目してください。

※ハッシュコード(GetHashCode)の値は、.NETのバージョンや実行環境によって異なる場合があります。

サンプルコード②:部分文字列が含まれない場合

using System;
public class Demo {
    public static void Main(String[] args) {
        string str1 = "Jacob";
        string str2 = "John";
        Console.WriteLine("String 1 = "+str1);
        Console.WriteLine("HashCode of String 1 = "+str1.GetHashCode());
        Console.WriteLine("String 2 = "+str2);
        Console.WriteLine("HashCode of String 2 = "+str2.GetHashCode());
        bool res = str1.Contains(str2);
        if (res)
            Console.WriteLine("Found!");
        else
            Console.WriteLine("Not found!");
    }
}

実行結果

String 1 = Jacob
HashCode of String 1 = -790718923
String 2 = John
HashCode of String 2 = -1505962600
Not found!

この例では、「Jacob」という文字列に「John」が含まれているかどうかを、if文と組み合わせて判定しています。「John」は「Jacob」内に存在しないため、Contains()メソッドはfalseを返し、Not found!と出力されます。このように、戻り値を条件式に使うことで、文字列の有無に応じた柔軟な処理を実装できます。

まとめ

String.Contains()メソッドを使用すると、特定の文字列が別の文字列に含まれているかどうかを簡単に判定できます。戻り値はbool型なので、if文などの条件分岐と組み合わせることで、検索結果に応じた処理を直感的に記述できるのが大きなメリットです。文字列操作を行うC#プログラミングにおいて、ぜひ覚えておきたい基本メソッドです。

  1. C#のString.PadRightメソッドで文字列の末尾を埋める方法

    C#のString.PadRightメソッドとはC#のPadRight()メソッドを使うと、文字列の末尾(右側)にスペースを追加し、指定した全長まで文字列を埋めることができます。スペースだけでなく、任意のUnicode文字を埋め込み文字として指定することも可能です。例として、次のような文字列を用意します。string myStr = Text1;この文字列の末尾にパディングを設定するには、PadRightメソッドを使用します。以下のように記述すると、全体の長さが10文字になるよう、末尾にスペースが追加されます。myStr.PadRight(10);それでは、実際の使用例を見ていきましょう。サン

  2. C#のSingleOrDefault()メソッドの使い方をわかりやすく解説

    SingleOrDefault()メソッドとはC#のLINQに含まれるSingleOrDefault()メソッドは、シーケンスから単一の特定要素を返すメソッドです。大きな特徴は、要素がシーケンス内に存在しない場合でも例外をスローせず、その型のデフォルト値を返すという点にあります。たとえば参照型の場合は null、数値型の場合は 0 といったデフォルト値が返されるため、空のコレクションを安全に扱いたい場面で非常に便利です。Single()メソッドとの違い似た名前の Single() メソッドは、要素が存在しない場合や複数の要素が見つかった場合に例外(InvalidOperationExcepti