This documentation is archived and is not being maintained.

String.IndexOf Method (String, Int32)

.NET Framework 1.1

Reports the index of the first occurrence of the specified String in this instance. The search starts at a specified character position.

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

Parameters

value
The String to seek.
startIndex
The search starting position.

Return Value

The index position of value if that string is found, or -1 if it is not. If value is Empty, the return value is startIndex.

Exceptions

Exception Type Condition
ArgumentNullException value is a null reference (Nothing in Visual Basic).
ArgumentOutOfRangeException startIndex is negative.

-or-

startIndex specifies a position not within this instance.

Remarks

Index numbering starts from zero.

This method performs a word (case-sensitive and culture-sensitive) search using the current culture. The search begins at the startIndex character position of this instance and continues until the last character position.

Example

The following example searches for all occurrences of a specified string within a target string.

[Visual Basic] 
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();

Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework, Common Language Infrastructure (CLI) Standard

See Also

String Class | String Members | System Namespace | String.IndexOf Overload List | Int32 | CultureInfo | IndexOfAny | LastIndexOf | LastIndexOfAny

Show: