このページは役に立ちましたか。
このページのコンテンツについての ご意見をお待ちしております
その他にご意見はありますか。
残り 1500 文字
エクスポート (0) 印刷
すべて展開
この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文

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

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

名前空間:  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 で指定される文字位置から最後の文字位置まで検索されます。

文字セットには無視できる文字が含まれています。これらの文字は、言語またはカルチャに依存した比較を実行する際には考慮されません。 カルチャに依存した検索では、value に無視できる文字が含まれている場合、その文字を削除して検索した場合と同じ結果になります。 value が一つ以上の無視できる文字のみで構成されている場合は、検索の開始文字位置である IndexOf(String, Int32) のメソッドは startIndexを常に返します。 次の例では、「m」の後にソフト ハイフン (U+00AD) の位置を特定するために、2 個の文字列に IndexOf(String, Int32) のメソッドが使用されます。 文字列の 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 で文字列を使用するためのベスト プラクティス」で説明しているように、既定値を代入する文字列比較メソッドの呼び出さず、代わりにパラメーターを明示的に指定する必要があるメソッドを呼び出すことをお勧めします。 現在のカルチャの文字列比較の規則を使用して特定の文字の位置の後に発生する部分文字列の最初のインデックスを検索するには、その comparisonType パラメーターの StringComparison.CurrentCulture 値で IndexOf(String, Int32, StringComparison) メソッド オーバーロードを呼び出します。

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


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 );
    }
}


.NET Framework

サポート対象 : 4.5.2、4.5.1、4.5、4、3.5、3.0、2.0、1.1、1.0

.NET Framework Client Profile

サポート対象 : 4、3.5 SP1

汎用性のあるクラス ライブラリ

サポート対象 : 汎用性のあるクラス ライブラリ

Windows ストア アプリ用 .NET

サポート対象 : Windows 8

Windows Phone アプリ用 .NET

サポート対象 : Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

コミュニティの追加

追加
表示:
© 2015 Microsoft