情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

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

2013/12/12

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

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public int IndexOf(
	string value,
	int startIndex
)

パラメーター

value
型: System.String
シークする文字列。
startIndex
型: System.Int32
検索が開始される位置。

戻り値

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

例外条件
ArgumentNullException

valuenull です。

ArgumentOutOfRangeException

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

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

このメソッドは、現在のカルチャを使用して、単語 (大文字/小文字を区別し、カルチャに依存した) 検索を実行します。このインスタンスの startIndex で指定される文字位置から最後の文字位置まで検索されます。

呼び出し時の注意

既定値を代入する文字列比較メソッドを呼び出さず、代わりにパラメーターを明示的に指定する必要があるメソッドを呼び出すことをお勧めします。現在のカルチャの文字列比較の規則を使用して特定の文字の位置の後に発生する部分文字列の最初のインデックスを検索するには、その comparisonType パラメーターの StringComparison.CurrentCulture 値で IndexOf メソッド オーバーロードを呼び出します。

検索対象の文字列内で、指定した文字列をすべて検索する例を次に示します。


using System;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {

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

      outputBlock.Text += String.Format("The search string is:{0}\"{1}\"{0}", "\n", strSource) + "\n";

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

      do
      {
         outputBlock.Text += "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;

         outputBlock.Text += String.Format("{0}The search parameter '{1}' was found {2} times.{0}",
                 "\n", strTarget, totFinds) + "\n";

         totFinds = 0;

      } while (true);
   }
}


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示: