IndexOf 方法 (String, Int32)
本文章是由機器翻譯。 將指標移到文章內的文字上方即可查看原文。 其他資訊。
譯文
原文

String.IndexOf 方法 (String, Int32)

 

回報這個執行個體中指定之字串第一次出現時的所在索引 (以零為起始)。搜尋從指定的字元位置開始。

命名空間:   System
組件:  mscorlib (在 mscorlib.dll 中)

public int IndexOf(
	string value,
	int startIndex
)

參數

value

要搜尋的字串。

startIndex

搜尋開始位置。

傳回值

Type: System.Int32

如果找到該字串,則為 value 以零為起始的索引位置,如未找到,則為 -1。如果 valueString.Empty,則傳回值是 startIndex

Exception Condition
ArgumentNullException

valuenull

ArgumentOutOfRangeException

startIndex 小於 0 (零) 或大於這個字串的長度。

索引編號從 0 開始。 startIndex 參數的範圍可以從 0 到字串執行個體的長度。如果 startIndex 等於長度的字串執行個體,這個方法會傳回-1。

這個方法會執行使用目前文化特性的文字 (區分大小寫和區分文化特性) 搜尋。搜尋開始於 startIndex 字元位置的這個執行個體,並接著直到最後一個字元位置。

字元集包含可忽略的字元,這些字元在執行語言或區分文化特性的比較時不列入考慮。執行區分文化特性的搜尋時,如果 value 包含可忽略的字元,則結果等於在已移除該字元的情況下搜尋。如果 value 只包含一個或多個可忽略的字元, IndexOf(String, Int32) 方法一律會傳回 startIndex, ,這是開始搜尋的字元位置。在下列範例中, IndexOf(String, Int32) 方法用來尋找後面接著"m"在兩個字串中選擇性連字號 (U + 00AD) 的位置。只有其中一個字串包含必要的子字串。如果執行此範例 .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 中使用字串的最佳作法, ,我們建議您避免呼叫字串比較方法,以取代預設值,並改為呼叫方法需要明確指定的參數。若要使用目前文化特性的比較規則,就會發生的子字串的第一個索引尋找特定的字元位置之後,呼叫 IndexOf(String, Int32, StringComparison) 方法多載,值是 StringComparison.CurrentCulture 針對其 comparisonType 參數。

下列範例會搜尋所有出現的目標字串中指定的字串。

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

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 起可用
回到頁首
顯示:
© 2016 Microsoft