Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

String.IndexOf-Methode (String, Int32)

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
Typ: System.String
Die zu suchende Zeichenfolge.
startIndex
Typ: System.Int32
Die Anfangsposition der Suche.

Rückgabewert

Typ: System.Int32
Die nullbasierte Indexposition von value, wenn diese Zeichenfolge gefunden wurde, andernfalls -1. Wenn valueString.Empty ist, wird startIndex zurückgegeben.

AusnahmeBedingung
ArgumentNullException

value ist null.

ArgumentOutOfRangeException

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

Indexbezifferung beginnt mit der Zahl 0. Der startIndex-Parameter kann von 0 bis zu der Länge der Zeichenfolgeninstanz reichen. Wenn startIndex der Länge der Zeichenfolgeninstanz entspricht, gibt die Methode -1.

Diese Methode führt eine Wortsuche (unter Berücksichtigung von Groß- und Kleinschreibung und der Kultur) unter Verwendung der aktuellen Kultur durch. Die Suche beginnt an der Zeichenposition startIndex dieser Instanz und wird bis zur Position des letzten Zeichens fortgesetzt.

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 nur aus einem oder mehreren ignorierbaren Zeichen besteht, gibt die IndexOf(String, Int32)-Methode immer startIndex zurück, die die Zeichenposition ist, an der die Suche beginnt. Im folgenden Beispiel wird die Methode IndexOf(String, Int32) verwendet, um die Position eines weichgezeichneten Strichen (U+00AD) gefolgt von einem "m" in zwei Zeichenfolgen zu durchsuchen. Nur eine der Zeichenfolgen enthält die erforderliche Teilzeichenfolge. Wenn das Beispiel auf .NET Framework 4 oder höher ausgeführt wird, da in beiden Fällen der weiche Bindestrich ein ignorierbares Zeichen ist, gibt die Methode den Index "m" in der Zeichenfolge zurück. 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 zu Aufrufern

Wie in Empfohlene Vorgehensweisen für die Verwendung von Zeichenfolgen in .NET Framework erklärt, empfiehlt es sich, zu vermeiden, Methoden für den Vergleich von Zeichenfolgen aufzurufen, die Standardwerte ersetzen, und stattdessen Methoden aufzurufen, für die ausdrücklich Parameter angegeben werden müssen. Um mit den Vergleichsregeln für die aktuelle Kultur den ersten Index einer untergeordneten Zeichenfolge zu suchen, die nach einer bestimmten Zeichenposition auftritt, rufen Sie die IndexOf(String, Int32, StringComparison)-Methodenüberladung mit dem Wert StringComparison.CurrentCulture für seinen comparisonType-Parameter auf.

Im folgenden Beispiel wird nach allen Vorkommen einer angegebenen Zeichenfolge in einer Zielzeichenfolge gesucht.


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

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: 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 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2015 Microsoft