本頁是否能提供幫助?
您對此內容的意見反應十分重要。 請告訴我們您的想法。
其他意見反應?
剩餘 1500 個字元
IndexOf 方法 (String, Int32)
本文章是由機器翻譯。 將指標移到文章內的文字上方即可查看原文。 其他資訊。
譯文
原文

String.IndexOf 方法 (String, Int32)

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

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

public int IndexOf(
	string value,
	int startIndex
)

參數

value
類型:System.String
要尋找的字串。
startIndex
類型:System.Int32
搜尋起始位置。

傳回值

類型:System.Int32
如果找到該字串,則為 value 的索引位置 (以零起始),如果沒有找到,則為 -1。 如果 valueString.Empty,則傳回值是 startIndex

例外狀況條件
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 中使用字串的最佳作法 中的說明,我們建議您避免呼叫取代預設值的字串比較方法,改為呼叫需要明確指定參數的方法。 若要使用目前文化特性的比較規則來尋找在特定字元位置之後會出現的子字串的第一個索引,可針對其 comparisonType 參數呼叫值為 StringComparison.CurrentCultureIndexOf(String, Int32, StringComparison) 方法多載。

下列範例將在目標字串中搜尋指定之字串的所有項目。


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


.NET Framework

支援版本:4.5.2、4.5.1、4.5、4、3.5、3.0、2.0、1.1、1.0

.NET Framework Client Profile

支援版本:4、3.5 SP1

可攜式類別庫

支援版本:可攜式類別庫

適用於 Windows 市集應用程式的 .NET

支援版本:Windows 8

適用於 Windows Phone 應用程式的 .NET

支援版本:Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (不支援伺服器核心角色), Windows Server 2008 R2 (SP1 (含) 以後版本支援伺服器核心角色,不支援 Itanium)

.NET Framework 並不支援各種平台的所有版本。如需支援版本的清單,請參閱.NET Framework 系統需求

社群新增項目

新增
Microsoft 正展開一份線上問卷調查,了解您對於 MSDN 網站的看法。 如果您選擇參加,您離開 MSDN 網站時即會顯示線上問卷調查。

您是否想要參加?
顯示:
© 2015 Microsoft