次の方法で共有


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

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

Overloads Public Function IndexOf( _
   ByVal value As String, _   ByVal startIndex As Integer _) As Integer
[C#]
public int IndexOf(stringvalue,intstartIndex);
[C++]
public: int IndexOf(String* value,intstartIndex);
[JScript]
public function IndexOf(
   value : String,startIndex : int) : int;

パラメータ

  • value
    シークする String
  • startIndex
    検索が開始される位置。

戻り値

その文字列が見つかった場合は、 value のインデックス位置。見つからなかった場合は -1。 valueEmpty の場合、戻り値は startIndex です。

例外

例外の種類 条件
ArgumentNullException value が null 参照 (Visual Basic では Nothing) です。
ArgumentOutOfRangeException startIndex が負の値です。

または

startIndex が、このインスタンス内にない位置を指定しています。

解説

インデックスの番号付けは 0 から始まります。

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

使用例

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

 
Imports System

Public Class IndexOfTest
    
    Public Shared Sub Main()
        Dim strSource As String = "This is the string which we will perform the search on"
        
        Console.WriteLine("The search string is:{0}{1}{0}", Environment.NewLine, strSource)
        Dim strTarget As String = ""
        Dim found As Integer = 0
        Dim totFinds As Integer = 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 <> "" Then
                Dim i As Integer
                
                
                For i = 0 To strSource.Length - 1
                    
                    found = strSource.IndexOf(strTarget, i)
                    If found > 0 Then
                        
                        totFinds += 1
                        i = found
                    Else
                        Exit For
                    End If
                Next i
            Else
                Return
            
            End If
            Console.WriteLine("{0}The search parameter '{1}' was found {2} times.{0}", Environment.NewLine, strTarget, totFinds)
            
            totFinds = 0
        
        Loop While True
    End Sub 'Main
End Class 'IndexOfTest

[C#] 
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 );
    }
}

[C++] 
#using <mscorlib.dll>

using namespace System;

int main()
{

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

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

   String* strTarget = S"";
   int found = 0;
   int totFinds = 0;

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

      strTarget = Console::ReadLine();

      if (!strTarget->Equals(S"")) {

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

            found = strSource->IndexOf(strTarget, i);

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

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

      totFinds = 0;

   } while (true);
}

[JScript] 
import System;

public class IndexOfTest {
    public static function Main() : void {

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

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

        var strTarget : String = "";
        var found : int = 0;
        var totFinds : int = 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 (var i : int = 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 );
    }
}
IndexOfTest.Main();

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

String クラス | String メンバ | System 名前空間 | String.IndexOf オーバーロードの一覧 | Int32 | CultureInfo | IndexOfAny | LastIndexOf | LastIndexOfAny