VB.NET 文字列の位置を取得(IndexOf/LastIndexOf)

VB.NETのIndexOfメソッドとLastIndexOfメソッドで、文字列の位置を取得するサンプルです。

確認環境
・Microsoft Visual Studio Community 2019

目次

文字列 前から検索する(IndexOf)
  後から検索する(lastIndexOf)

前から検索する(IndexOf)

public int IndexOf (string value, int startIndex, StringComparison comparisonType);
  • 文字列の先頭から検索して引数に指定した文字列が出現した位置を返します。
  • 1つ目の引数は、検索する文字列です。
  • 2つめの引数は検索を開始する位置です。
  • 該当の文字がなかったときは-1を返します。
  • 先頭の1文字目の位置は0です。
  • 以下はMicrosoftのIndexOf メソッドのリンクです。
    https://docs.microsoft.com/ja-jp/dotnet/api/system.string.indexof?view=netframework-4.7.2

コード

IndexOfメソッドのサンプルです。

Module Module1
  Sub Main()

    Dim str1 As String = "abcabc"
    Console.WriteLine(str1.IndexOf("a")) '0が出力される
    Console.WriteLine(str1.IndexOf("b")) '1が出力される
    Console.WriteLine(str1.IndexOf("c")) '2が出力される
    Console.WriteLine(str1.IndexOf("abc")) '0が出力される
    Console.WriteLine(str1.IndexOf("z")) '-1が出力される

    Dim str2 As String = "あいうあいう"
    Console.WriteLine(str2.IndexOf("あ")) '0が出力される
    Console.WriteLine(str2.IndexOf("い")) '1が出力される
    Console.WriteLine(str2.IndexOf("う")) '2が出力される
  End Sub
End Module

5~8行目は、前から検索し引数の文字列が最初に見つかった位置を返しています。
9行目は、該当の文字がないので-1が返ります。
11行目は、変数に日本語の文字列を代入しています。
12~14行目は、前から検索し引数の文字列が最初に見つかった位置を返しています。

後から検索する(lastIndexOf)

public int LastIndexOf (string value, int startIndex, int count, StringComparison comparisonType);
  • 文字列の最後から検索して引数に指定した文字列が出現した位置を返します。
  • 1つ目の引数は、検索する文字列です。
  • 2つめの引数は検索を開始する位置です。
  • 該当の文字がなかったときは-1を返します。
  • 先頭の1文字目の位置は0です
  • 以下はMicrosoftのLastIndexOfメソッドのリンクです。
    https://docs.microsoft.com/ja-jp/dotnet/api/system.string.lastindexof?view=netframework-4.7.2

コード

LastIndexOfメソッドのサンプルです。

Module Module1
  Sub Main()

    Dim str1 As String = "abcabc"
    Console.WriteLine(str1.LastIndexOf("a")) '3が出力される
    Console.WriteLine(str1.LastIndexOf("b")) '4が出力される
    Console.WriteLine(str1.LastIndexOf("c")) '5が出力される
    Console.WriteLine(str1.LastIndexOf("abc")) '3が出力される
    Console.WriteLine(str1.LastIndexOf("z")) '-1が出力される

    Dim str2 As String = "あいうあいう"
    Console.WriteLine(str2.LastIndexOf("あ")) '3が出力される
    Console.WriteLine(str2.LastIndexOf("い")) '4が出力される
    Console.WriteLine(str2.LastIndexOf("う")) '5が出力される
  End Sub
End Module

5~8行目は、後ろから検索し引数の文字列が最初に見つかった位置を返しています。
9行目は、該当の文字がないので-1が返ります。
11行目は、変数に日本語の文字列を代入しています。
12~14行目は、後ろから検索し引数の文字列が最初に見つかった位置を返しています。

関連の記事

VB.NET 文字列の始まり/終わりを確認(StartsWith/EndsWith)
VB.NET 正規表現で真偽値を返す(IsMatchメソッド)

△上に戻る