Export (0) Print
Expand All

String.IndexOf Method (Char, Int32, Int32)

Reports the index of the first occurrence of the specified character in this instance. The search starts at a specified character position and examines a specified number of character positions.

Namespace: System
Assembly: mscorlib (in mscorlib.dll)

public int IndexOf (
	char value,
	int startIndex,
	int count
)
public int IndexOf (
	char value, 
	int startIndex, 
	int count
)
public function IndexOf (
	value : char, 
	startIndex : int, 
	count : int
) : int

Parameters

value

A Unicode character to seek.

startIndex

The search starting position.

count

The number of character positions to examine.

Return Value

The index position of value if that character is found, or -1 if it is not.

Exception typeCondition

ArgumentOutOfRangeException

count or startIndex is negative.

-or-

count + startIndex specifies a position beyond the end of this instance.

The search begins at startIndex and continues to startIndex + count -1. The character at startIndex + count is not included in the search.

Index numbering starts from zero.

The search for value is case-sensitive.

This method performs an ordinal (culture-insensitive) search, where a character is considered equivalent to another character only if their Unicode scalar value are the same. To perform a culture-sensitive search, use the CompareInfo.IndexOf method, where a Unicode scalar value representing a precomposed character, such as the ligature 'Æ' (U+00C6), might be considered equivalent to any occurrence of the character's components in the correct sequence, such as "AE" (U+0041, U+0045), depending on the culture.

The following code example demonstrates the IndexOf method.

// Example for the String.IndexOf( char, int, int ) method.
using System;

class IndexOfCII 
{
    public static void Main() 
    {
        string br1 = 
            "0----+----1----+----2----+----3----+----" +
            "4----+----5----+----6----+----7";
        string br2 = 
            "0123456789012345678901234567890123456789" +
            "0123456789012345678901234567890";
        string str = 
            "ABCDEFGHI abcdefghi ABCDEFGHI abcdefghi " +
            "ABCDEFGHI abcdefghi ABCDEFGHI";

        Console.WriteLine( 
            "This example of String.IndexOf( char, int, int )\n" +
            "generates the following output." );
        Console.WriteLine( 
            "{0}{1}{0}{2}{0}{3}{0}", 
            Environment.NewLine, br1, br2, str );

        FindAllChar( 'A', str );
        FindAllChar( 'a', str );
        FindAllChar( 'I', str );
        FindAllChar( 'i', str );
        FindAllChar( '@', str );
        FindAllChar( ' ', str );
    }

    static void FindAllChar( Char target, String searched )
    {
        Console.Write( 
            "The character '{0}' occurs at position(s): ", 
            target );

        int     startIndex = -1;
        int     hitCount = 0;

        // Search for all occurrences of the target.
        while( true )
        {
            startIndex = searched.IndexOf( 
                target, startIndex + 1, 
                searched.Length - startIndex - 1 );

            // Exit the loop if the target is not found.
            if( startIndex < 0 )
                break;

            Console.Write( "{0}, ", startIndex );
            hitCount++;
        }

        Console.WriteLine( "occurrences: {0}", hitCount );
    }
}

/*
This example of String.IndexOf( char, int, int )
generates the following output.

0----+----1----+----2----+----3----+----4----+----5----+----6----+----7
01234567890123456789012345678901234567890123456789012345678901234567890
ABCDEFGHI abcdefghi ABCDEFGHI abcdefghi ABCDEFGHI abcdefghi ABCDEFGHI

The character 'A' occurs at position(s): 0, 20, 40, 60, occurrences: 4
The character 'a' occurs at position(s): 10, 30, 50, occurrences: 3
The character 'I' occurs at position(s): 8, 28, 48, 68, occurrences: 4
The character 'i' occurs at position(s): 18, 38, 58, occurrences: 3
The character '@' occurs at position(s): occurrences: 0
The character ' ' occurs at position(s): 9, 19, 29, 39, 49, 59, occurrences: 6
*/

// Example for the String.IndexOf( char, int, int ) method.
import System.*;

class IndexOfCII
{
    public static void main(String[] args)
    {
        String br1 = "0----+----1----+----2----+----3----+----" 
            + "4----+----5----+----6----+----7";
        String br2 = "0123456789012345678901234567890123456789" 
            + "0123456789012345678901234567890";
        String str = "ABCDEFGHI abcdefghi ABCDEFGHI abcdefghi "
            + "ABCDEFGHI abcdefghi ABCDEFGHI";
        Console.WriteLine("This example of "
            + "String.IndexOf( char, int, int )\n" 
            + "generates the following output.");
        Console.WriteLine("{0}{1}{0}{2}{0}{3}{0}", 
            new Object[] { Environment.get_NewLine(), br1, br2, str });
        FindAllChar('A', str);
        FindAllChar('a', str);
        FindAllChar('I', str);
        FindAllChar('i', str);
        FindAllChar('@', str);
        FindAllChar(' ', str);
    } //main

    static void FindAllChar(char target, String searched)
    {
        Console.Write("The character '{0}' occurs at position(s): ", 
            String.valueOf(target));
        int startIndex = -1;
        int hitCount = 0;

        // Search for all occurrences of the target.
        while(true) {
            startIndex = searched.IndexOf(target, startIndex + 1, 
                searched.get_Length() - startIndex - 1);

            // Exit the loop if the target is not found.
            if (startIndex < 0) {
                break;
            }     
            Console.Write("{0}, ", String.valueOf(startIndex));
            hitCount++;
        }
        Console.WriteLine("occurrences: {0}", String.valueOf(hitCount));
    } //FindAllChar
} //IndexOfCII
/*
This example of String.IndexOf( char, int, int )
generates the following output.

0----+----1----+----2----+----3----+----4----+----5----+----6----+----7
01234567890123456789012345678901234567890123456789012345678901234567890
ABCDEFGHI abcdefghi ABCDEFGHI abcdefghi ABCDEFGHI abcdefghi ABCDEFGHI

The character 'A' occurs at position(s): 0, 20, 40, 60, occurrences: 4
The character 'a' occurs at position(s): 10, 30, 50, occurrences: 3
The character 'I' occurs at position(s): 8, 28, 48, 68, occurrences: 4
The character 'i' occurs at position(s): 18, 38, 58, occurrences: 3
The character '@' occurs at position(s): occurrences: 0
The character ' ' occurs at position(s): 9, 19, 29, 39, 49, 59, occurrences: 6
*/

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0

Community Additions

ADD
Show:
© 2015 Microsoft