【VB.NET】指定した文字列が、文字列内のどの位置にあるかを調べるには?

訪問して頂きありがとうございます。まさふくろーです。

この記事では、指定した文字列が、文字列内のどの位置にあるかを調べる方法をご紹介します。

指定した文字列が、文字列内のどの位置にあるかを調べる

  • 指定した文字列が、文字列内の何文字目に存在するかを取得するには、StringオブジェクトのIndexOfメソッド、LastIndexOfメソッドを使います。
  • 書式は、以下になります。

【1】文字列.IndexOf(検索する文字列)

【2】文字列.IndexOf(検索する文字列, 検索開始位置)

【3】文字列.LastIndexOf(検索する文字列)

解説
引数に指定した文字列が存在するかのチェックや、最初に見つかった位置を取得する場合は、【1】【2】どちらでも使用可能です。
文字列に含まれるすべての位置を取得するには、【2】を使用します。
引数に指定した文字列が、最後に見つかった位置を取得する場合は、【3】を使用します。
引数に指定した文字列が現れる位置をInteger型(整数型)の値で返します。
位置は「0」から始まります。
引数に指定した文字列が見つからなかった場合は、「-1」を返します。

サンプルプログラム【1】

2 「ユーザー名(@より前の文字)を取得する」ボタンがクリックされた場合に、以下処理を行う。
9 テキストボックスに入力した値を、文字列型の変数「InputString」に代入。
11 検索文字列「@」を文字列型の変数「SearchString」に代入。
13 検索文字列「@」の位置を取得する。
15 検索文字列「@」が見つかった場合、
16 先頭から「@」前までの文字を取得し、ラベルに表示する。

サンプルプログラム【2】

2 「@の位置を調べる」ボタンがクリックされた場合に、以下処理を行う。
9 テキストボックスに入力した値を、文字列型の変数「InputString」に代入。
11 検索文字列「@」を文字列型の変数「SearchString」に代入。
15 テキストボックスに入力した文字数分、以下処理を繰り返す。
17 検索文字列「@」の位置を取得する。
19~20 検索文字列「@」が見つからなかった場合は、処理終了。
21 検索文字列「@」が見つかった場合、
22 ラベルに位置を表示する。(検索開始位置は「0」から開始するので、実際の文字の位置は「Pos + 1」となります。)
23 次の検索文字列「@」の位置を調べるため、検索開始位置を「+1」します。

関連記事

最後まで読んでいただき、ありがとうございました!

本のまとめ関連記事はこちら