C# 文字列の位置を取得する(IndexOf/LastIndexOf)

C#の文字列の位置を取得するサンプルです。

確認環境
・Microsoft Visual Studio Community 2017

目次

IndexOfメソッド

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

文字列の位置を取得する

文字列の位置を取得するサンプルです。
文字列を左(先頭の文字)から検索します。

using System;
class Test1
{
    static void Main()
    {
        string str1 = "あいうabcあいう";

        Console.WriteLine(str1.IndexOf("b"));// 4

        Console.WriteLine(str1.IndexOf("abc"));// 3

        Console.WriteLine(str1.IndexOf("あいう"));// 0

        Console.WriteLine(str1.IndexOf("あいえ"));// -1
    }
}

8,10行目は、指定した文字列が見つかった位置を返しています。
12行目は、文字列を左から見て最初に出現する"あいう"の位置を返しています。
14行目は、指定した文字列がないので-1を返します。

検索開始位置を指定する

検索開始位置を指定するサンプルです。

using System;
class Test1
{
    static void Main()
    {
        string str1 = "あいうえお";

        Console.WriteLine(str1.IndexOf("う", 2));// 2

        Console.WriteLine(str1.IndexOf("う", 3));// -1
    }
}

8行目の引数は2なので対象の文字列は(うえお)です。引数の文字列(う)が見つかった位置を返しています。
10行目の引数は3なので対象の文字列は(えお)です。引数の文字列(う)が見つからないので-1を返します。

 

LastIndexOfメソッド

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

文字列の位置を取得する

文字列の位置を取得するサンプルです。
文字列を右(最後の文字)から検索します。

using System;
class Test1
{
    static void Main()
    {
        string str1 = "あいうabcあいう";

        Console.WriteLine(str1.LastIndexOf("b"));// 4

        Console.WriteLine(str1.LastIndexOf("abc"));// 3

        Console.WriteLine(str1.LastIndexOf("あいう"));// 6

        Console.WriteLine(str1.LastIndexOf("あいえ"));// -1
    }
}

8,10行目は、引数の文字列が見つかった位置を返しています。
12行目は、文字列を右から見て最初に出現する"あいう"の位置を返しています。
14行目は、引数の文字列が見つからないので-1を返します。

検索開始位置を指定する

検索開始位置を指定するサンプルです。

using System;
class Test1
{
    static void Main()
    {
        string str1 = "あいうabcあいう";

        Console.WriteLine(str1.LastIndexOf("う", 4));// 2

        Console.WriteLine(str1.LastIndexOf("a", 2));// -1
    }
}

8行目の引数は4なので対象の文字列は(あいうab)です。引数の文字列(う)が見つかった位置を返しています。
10行目の引数は2なので対象の文字列は(あいう)です。引数の文字列が見つからないので-1を返します。

関連の記事

C# 文字列を分割して配列にするサンプル(Split)
C# 文字列の始め/終わりを確認する(StartsWith/EndsWith)
C# 文字列を置き換えるサンプル(Replace)
C# 文字列の一部を取得するサンプル(Substring)

△上に戻る