この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

String.IndexOf メソッド (String, Int32)

 

公開日: 2016年10月

指定された文字列がこのインスタンス内で最初に見つかった位置の 0 から始まるインデックスをレポートします。 検索は、指定した文字位置から開始されます。

名前空間:   System
アセンブリ:  mscorlib (mscorlib.dll 内)

public int IndexOf(
	string value,
	int startIndex
)

パラメーター

value
Type: System.String

シークする文字列。

startIndex
Type: System.Int32

検索が開始される位置。

戻り値

Type: System.Int32

その文字列が見つかった場合は、現在のインスタンスの先頭からの、value の 0 から始まるインデックス位置。見つからなかった場合は、-1。 valueString.Empty の場合、戻り値は startIndex です。

Exception Condition
ArgumentNullException

valuenull です。

ArgumentOutOfRangeException

startIndex が、0 未満か、またはこの文字列の長さを超えています。

インデックスの番号は 0 から始まります。 startIndex パラメーターには、0 から文字列インスタンスの長さまでの範囲の値を指定できます。 場合 startIndex 文字列インスタンスの長さと等しい、-1 が返されます。

このメソッドは、現在のカルチャを使用して単語 (大文字小文字を区別し、カルチャに依存) 検索を実行します。 検索を開始、 startIndex のこのインスタンスの位置の文字し、最後の文字位置まで続きます。

文字セットには無視できる文字が含まれています。これらの文字は、言語またはカルチャに依存した比較を実行する際には考慮されません。 カルチャに依存した検索では、value に無視できる文字が含まれている場合、その文字を削除して検索した場合と同じ結果になります。 場合 value 1 つまたは複数の無視できる文字だけで構成されて、 IndexOf(String, Int32) メソッドは常に返します startIndex, 、これは、検索を開始する文字位置。 次の例では、 IndexOf(String, Int32) で、2 つの文字列に"m"の後にソフト ハイフン (U + 00AD) の位置を検索するメソッドを使用します。 文字列の 1 つのみに必要な部分文字列が含まれます。 例を実行すると、 .NET Framework 4 または後で、どちらの場合も、ソフト ハイフンに無視できる文字であるためメソッドを返す文字列の"m"のインデックス。 "m" の後にソフト ハイフンが含まれる最初の文字列の場合、メソッドはソフト ハイフンのインデックスを返すことができず、代わりに "m" のインデックスを返すことに注意してください。

using System;

public class Example
{
   public static void Main()
   {
      string searchString = "\u00ADm";
      string s1 = "ani\u00ADmal" ;
      string s2 = "animal";

      Console.WriteLine(s1.IndexOf(searchString, 2));
      Console.WriteLine(s2.IndexOf(searchString, 2));
   }
}
// The example displays the following output:
//       4
//       3

呼び出し時の注意:

説明したよう .NET Framework で文字列を使用するためのベスト プラクティス, 、既定値を代入し、パラメーターを明示的に指定する必要のあるメソッドを呼び出す代わりに文字列比較メソッドを呼び出さないようにすることをお勧めします。 特定の文字位置の後に発生する部分文字列の最初のインデックスを検索するには、現在のカルチャの比較規則を使用して、呼び出し、 IndexOf(String, Int32, StringComparison) の値を持つメソッド オーバー ロード StringComparison.CurrentCulturecomparisonType パラメーター。

次の例は、ターゲット文字列内の指定した文字列と一致する箇所をすべて検索します。

using System;

public class IndexOfTest {
    public static void Main() {

        string strSource = "This is the string which we will perform the search on";

        Console.WriteLine("The search string is:{0}\"{1}\"{0}", Environment.NewLine, strSource);

        string strTarget = "";
        int found = 0;
        int totFinds = 0;

        do {
            Console.Write("Please enter a search value to look for in the above string (hit Enter to exit) ==> ");

            strTarget = Console.ReadLine();

            if (strTarget != "") {

                for (int i = 0; i < strSource.Length; i++) {

                    found = strSource.IndexOf(strTarget, i);

                    if (found >= 0) {
                        totFinds++;
                        i = found;
                    }
                    else
                        break;
                }
            }
            else
                return;

            Console.WriteLine("{0}The search parameter '{1}' was found {2} times.{0}",
                    Environment.NewLine, strTarget, totFinds);

            totFinds = 0;

        } while ( true );
    }
}

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
1.1 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
Windows Phone
8.1 以降で使用可能
トップに戻る
表示: