C#で文字列に含むか検索して確認する2つの方法!

C# C#

C#で文字列に特定の文字列を含むか検索して、確認する方法について書いています。
対象の文字列に、指定した特定の文字列を含むか確認するには、下記のメソッドを使うことができます。

・文字列からContainsメソッドを呼び出す。
・文字列からIndexOfメソッドを呼び出す。

載せているコードについては、.Netのバージョン6(C#のバージョン10)で確認しました。

Containsメソッドの使い方

文字列からContainsメソッドを呼び出して使うと、指定した文字列を含むか確認することができます。
例えば、下記のように使うことができます。

String text = "hello, world!!";
String searchText = "world";

bool isContains = text.Contains(searchText);
if (isContains) {
    Console.WriteLine("worldが含まれています!");
}

最初にtext変数に文字列の「hello, world!!」を入れています。
次にsearchText変数に文字列の「world」を入れています。これが検索する文字列です。

そして、text変数(文字列)からContainsメソッドを呼んでいます。
引数として渡しているのは、検索したい文字列です。
これで、text変数(文字列)から探したい文字列の「world」があるか確認できます。

結果をisContains変数に取得しています。
存在するときにはTrueが返ってきて、存在しないときにはFalseが返ってきます。

今回は存在するので、Trueが返ってきて「"worldが含まれています!"」が出力されてプログラムが終わります。

引数と戻り値のまとめ

Containsメソッドの引数と戻り値のまとめです。

引数

検索したい文字列を渡します。

String.Contains("検索したい文字列")

戻り値

検索結果として、検索文字列を含んでいればTrueが返ってきます。
含んでいないときにはFalseが返ってきます。

IndexOfメソッドの使い方

文字列からIndexOfメソッドを呼び出して使うと、指定した文字列が含まれている位置を取得できます。
この位置を参照して、あるかどうか確認できます。

String text = "apple orange grape";
String searchText = "grape";

int index = text.IndexOf(searchText);
if (index >= 0) {
    Console.WriteLine("grapeが含まれています!");
}

最初にtext変数に文字列の「apple orange grape」を入れています。
次にsearchText変数に文字列の「grape」を入れています。これが検索する文字列です。

そして、text変数(文字列)からIndexOfメソッドを呼んでいます。
引数として渡しているsearchText変数が検索文字列になります。

検索文字列があったときには、検索対象の文字列を0番目から数えて、存在する位置が返ってきます。
検索対象の文字列に含まれていないときには「-1が返ってきます。

今回は「grape」が検索対象の文字列に含まれています。
文字列の先頭が0番目で、スペースも含めて「13」がindex変数に返ってきます。

含まれないときには「-1」が返ってくるので、if文で「0」より大きいとしていますが、これで含まれることになります。
今回は存在するので、「13」が返ってきて、「grapeが含まれています!」が出力されて処理が終わります。

引数と戻り値のまとめ

IndexOfメソッドの引数と戻り値のまとめです。

引数

検索したい文字列を渡します。

String.IndexOf("検索したい文字列")

戻り値

検索結果として、検索文字列を含んでいれば、文字列の含まれている位置が返ってきます。
文字列は先頭を0番目から数えて、検索文字列の開始位置が取得できます。

含んでいないときには「-1」が返ってきます。

文字列に含むか検索して確認する方法まとめ

今回は、C#で文字列に含むか検索して確認する方法について書きました。
記事の内容をまとめると、下記のようになります。

・検索対象の文字列からContainsメソッドを呼び出すと、`True`か`False`で検索結果を返してくれる。
・Containsメソッドには検索したい文字列を渡す。存在すれば`True`が返ってくる。
・検索対象の文字列からIndexOfメソッドを呼び出すと、開始位置を検索結果として返す。
・IndexOfメソッドには検索したい文字列を渡す。存在すれば開始位置、存在しないときには-1が返る。

2つのメソッドを使って、検索文字列が対象文字列に存在するかを確認しました。
使いどころとして、単純にあるかどうかを確認したいときにはContainsメソッドを使いましょう。
開始位置が欲しいときにはIndexOfメソッドを使うと良いかと思います。

コメント

  1. 匿名 より:

    含まれないときには「-1」が返ってくるので、if文で「0」より大きいとしていますが

    0が返ってきてもFalseになってしまうので、
    if文では「0」以上でないと誤りかと。

タイトルとURLをコピーしました