本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

String.IndexOf 方法 (Char, Int32, Int32)

 

报告指定字符在此实例中的第一个匹配项的从零开始的索引。搜索从指定字符位置开始,并检查指定数量的字符位置。

命名空间:   System
程序集:  mscorlib(mscorlib.dll 中)

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

参数

value

要查找的 Unicode 字符。

startIndex

搜索起始位置。

count

要检查的字符位置数。

返回值

Type: System.Int32

如果找到该字符,则为 value 的从零开始的索引位置;如果未找到,则为 -1。

Exception Condition
ArgumentOutOfRangeException

countstartIndex 为负。

- 或 -

startIndex 大于此字符串的长度。

- 或 -

count 大于减去此字符串的长度 startIndex

在开始进行搜索 startIndex ,而且以后继续 startIndex + count -1。在字符 startIndex + count 不包括在搜索中。

编号从 0 (零) 开始的索引。 startIndex 参数可以介于 0 到字符串实例的长度。

此方法执行顺序 (不区分区域性) 搜索,其中一个字符被视为等效于另一个字符仅当其 Unicode 的标量值是相同的。若要执行区分区域性的搜索,请使用 CompareInfo.IndexOf 方法,其中 Unicode 标量值表示了预构成的字符如连字"Æ"(U + 00 C 6),可能会被视为等效于出现正确的顺序,如"AE"中的字符的组件的任何 (U + 0041、 U + 0045)、 根据区域性。

下面的示例演示 IndexOf 方法。

// 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
*/

Universal Windows Platform
4.5 后可用
.NET Framework
1.1 后可用
Portable Class Library
受以下版本支持:portable .NET platforms
Silverlight
2.0 后可用
Windows Phone Silverlight
7.0 后可用
Windows Phone
8.1 后可用
返回页首
显示: