Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

String.IndexOf-Methode: (String, Int32)

 

Veröffentlicht: Oktober 2016

Gibt den NULL-basierten Index des ersten Vorkommens der angegebenen Zeichenfolge in dieser Instanz an. Die Suche beginnt an einer angegebenen Zeichenposition.

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

public int IndexOf(
	string value,
	int startIndex
)

Parameter

value
Type: System.String

Die zu suchende Zeichenfolge.

startIndex
Type: System.Int32

Die Anfangsposition der Suche.

Rückgabewert

Type: System.Int32

Die nullbasierte Indexposition von value vom Anfang der aktuellen Instanz, wenn diese Zeichenfolge gefunden wurde, oder -1, wenn sie nicht gefunden wurde. Wenn valueString.Empty ist, wird startIndex zurückgegeben.

Exception Condition
ArgumentNullException

value ist null.

ArgumentOutOfRangeException

startIndex ist kleiner als 0 (null) oder größer als die Länge dieser Zeichenfolge.

Nummerierung beginnt bei 0. Der startIndex-Parameter kann von 0 bis zu der Länge der Zeichenfolgeninstanz reichen. Wenn startIndex entspricht der Länge der Zeichenfolgeninstanz, die Methode gibt-1 zurück.

Diese Methode führt eine Wortsuche (Groß-/Kleinschreibung und der Kultur) unter Verwendung der aktuellen Kultur. Die Suche beginnt an der startIndex Zeichenposition dieser Instanz und wird fortgesetzt, bis der letzten Zeichenposition.

Zeichensätze enthalten ignorierbare Zeichen, d. h. Zeichen, die bei der Durchführung eines linguistischen oder kulturabhängigen Vergleichs nicht berücksichtigt werden. Bei einer kulturabhängige Suche, bei der value ein ignorierbares Zeichen enthält, ist das Ergebnis das gleiche wie bei einer Suche ohne dieses Zeichen. Wenn value besteht nur aus ein oder mehrere Ignorierbare Zeichen, die IndexOf(String, Int32) -Methode gibt immer startIndex, ist die Position des Zeichens, an dem die Suche beginnt. Im folgenden Beispiel die IndexOf(String, Int32) -Methode verwendet, um die Position des einen bedingten Bindestrich (U + 00AD) gefolgt von einem "m" in zwei Zeichenfolgen zu suchen. Nur eine der Zeichenfolgen enthält die erforderliche Teilzeichenfolge. Wenn das Beispiel ausgeführt wird, auf die .NET Framework 4 oder höher, in beiden Fällen, da der bedingte Bindestrich ein ignorierbares Zeichen ist die Methode gibt den Index des "m" in der Zeichenfolge. Beachten Sie, dass bei der ersten Zeichenfolge, die den bedingten Bindestrich gefolgt von einem "m" umfasst, die Methode den Index des bedingten Bindestrichs nicht zurückgeben kann, sondern stattdessen den Index des "m" zurückgibt.

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

Hinweise für Aufrufer:

Wie in Empfohlene Vorgehensweisen für die Verwendung von Zeichenfolgen in .NET Framework erläutert, wird empfohlen, Aufrufe von Methoden zum Zeichenfolgenvergleich zu vermeiden, die Standardwerte ersetzen, und stattdessen Methoden aufzurufen, für die Parameter explizit angegeben werden müssen. Um gemäß den Vergleichsregeln der aktuellen Kultur, um den ersten Index einer Teilzeichenfolge, die auftritt, nach einer bestimmten Zeichenposition zu suchen, rufen die IndexOf(String, Int32, StringComparison) eine Überladung mit einem Wert von StringComparison.CurrentCulture für seine comparisonType Parameter.

Das folgende Beispiel sucht nach allen Vorkommen einer angegebenen Zeichenfolge in einer Zielzeichenfolge.

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

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: