文字列処理

[C#] 文字列処理 文字の検索(IndexOf)

文字列の検索

先頭から検索する

文字列中の文字を先頭から検索するには、StringクラスのIndexOfメソッドを使用します。

文字列.IndexOf(“検索対象文字”)

それではサンプルを見てみましょう。
Console.WriteLineを使って、IndexOfの動作をコンソールに出力します。

上記を実行した結果がこちらです。

実行結果

2

実行結果がコンソールに出力されました。
“文字”を先頭から検索して最初に見つかった位置である、2が表示されています。
該当の文字は3文字目ですが、これは1文字目を0としているためです。

それでは、文字が見つからなかった場合と、引数に空文字(””)を指定した場合を見てみましょう。

上記を実行した結果がこちらです。

実行結果

-1
0

文字が見つからなかった場合は-1、空文字を引数とした場合は0が表示されているのがわかります。

 

末尾から検索する

文字列中の文字を末尾から検索するには、StringクラスのLastIndexOfメソッドを使用します。

文字列.LastIndexOf(“検索対象文字”)

それではサンプルを見てみましょう。
Console.WriteLineを使って、LastIndexOfの動作をコンソールに出力します。

上記を実行した結果がこちらです。

実行結果

7

実行結果がコンソールに出力されました。
“文字”を末尾から検索して最初に見つかった位置である、7が表示されています。

IndexOf同様、文字が見つからなかった場合と引数に空文字列(””)を指定した場合を見てみましょう。

上記を実行した結果がこちらです。

実行結果

-1
10

文字が見つからなかった場合は-1、空文字を引数とした場合は10が表示されているのがわかります。
10というのは、文字列長 – 1の値です。

IndexOfメソッド、LastIndexOfメソッドともに、注意すべき点は検索対象の文字が1文字目に存在した場合(LastIndexOfの場合は最後尾)と、空文字を引数に指定した場合に取得する値が同じである点です。
極力、空文字を引数に指定しないようにしましょう。
 
 
以上が、文字列中の文字を検索するメソッド「IndexOf, LastIndexOf」の使い方です。
ぜひ参考にしてみてください。