Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
.NET stellt mehrere Methoden zum Vergleichen der Werte von Zeichenfolgen bereit. In der folgenden Tabelle sind die Wertvergleichsmethoden aufgeführt und beschrieben.
| Methodenname | Verwendung |
|---|---|
| String.Compare | Vergleicht die Werte von zwei Zeichenfolgen. Gibt eine ganze Zahl zurück. |
| String.CompareOrdinal | Vergleicht zwei Strings ohne Berücksichtigung der lokalen Kultur. Gibt eine ganze Zahl zurück. |
| String.CompareTo | Vergleicht das aktuelle Zeichenfolgenobjekt mit einer anderen Zeichenfolge. Gibt eine ganze Zahl zurück. |
| String.StartsWith | Bestimmt, ob eine Zeichenfolge mit der übergebenen Zeichenfolge beginnt. Gibt einen booleschen Wert zurück. |
| String.EndsWith | Bestimmt, ob eine Zeichenfolge mit der übergebenen Zeichenfolge endet. Gibt einen booleschen Wert zurück. |
| String.Contains | Bestimmt, ob ein Zeichen oder eine Zeichenfolge innerhalb einer anderen Zeichenfolge auftritt. Gibt einen booleschen Wert zurück. |
| String.Equals | Bestimmt, ob zwei Zeichenfolgen identisch sind. Gibt einen booleschen Wert zurück. |
| String.IndexOf | Gibt die Indexposition eines Zeichens oder einer Zeichenfolge ab dem Anfang der zu untersuchenden Zeichenfolge zurück. Gibt eine ganze Zahl zurück. |
| String.LastIndexOf | Gibt die Indexposition eines Zeichens oder einer Zeichenfolge ab dem Ende der zu untersuchenden Zeichenfolge zurück. Gibt eine ganze Zahl zurück. |
Compare-Methode
Die statische String.Compare Methode bietet eine gründliche Möglichkeit, zwei Zeichenfolgen zu vergleichen. Diese Methode ist kulturell sensibel. Mit dieser Funktion können Sie zwei Zeichenfolgen oder Teilzeichenfolgen zweier Zeichenfolgen vergleichen. Darüber hinaus werden Überladungen bereitgestellt, die Groß- oder Kleinschreibung und kulturelle Unterschiede berücksichtigen oder ignorieren. In der folgenden Tabelle sind die drei ganzzahligen Werte aufgeführt, die von dieser Methode zurückgegeben werden können.
| Rückgabewert | Zustand |
|---|---|
| Eine negative ganze Zahl | Die erste Zeichenfolge steht vor der zweiten Zeichenfolge in der Sortierreihenfolge. -oder- Die erste Zeichenfolge ist null. |
| 0 | Die erste Zeichenfolge und die zweite Zeichenfolge sind gleich. -oder- Beide Zeichenfolgen sind null. |
| Eine positive ganze Zahl -oder- 1 |
Die erste Zeichenfolge folgt der zweiten Zeichenfolge in der Sortierreihenfolge. -oder- Die zweite Zeichenfolge lautet null. |
Von Bedeutung
Die String.Compare Methode ist in erster Linie für die Anordnung oder Sortierung von Zeichenfolgen vorgesehen. Sie sollten die String.Compare Methode nicht verwenden, um die Gleichheit zu testen (d. a. um explizit nach einem Rückgabewert von 0 zu suchen, wobei nicht berücksichtigt wird, ob eine Zeichenfolge kleiner oder größer als die andere ist). Verwenden Sie stattdessen die String.Equals(String, String, StringComparison) Methode, um zu bestimmen, ob zwei Zeichenfolgen gleich sind.
Im folgenden Beispiel wird die String.Compare Methode verwendet, um die relativen Werte von zwei Zeichenfolgen zu bestimmen.
string string1 = "Hello World!";
Console.WriteLine(String.Compare(string1, "Hello World?"));
Dim string1 As String = "Hello World!"
Console.WriteLine(String.Compare(string1, "Hello World?"))
In diesem Beispiel wird -1 auf der Konsole angezeigt.
Das vorangehende Beispiel ist standardmäßig kultursensitiv. Um einen kulturunabhängigen Zeichenfolgenvergleich durchzuführen, verwenden Sie eine Überladung der String.Compare-Methode, die es Ihnen ermöglicht, die zu verwendende Kultur durch Angabe eines Kultur-Parameters festzulegen. Ein Beispiel, das veranschaulicht, wie die String.Compare Methode zum Ausführen eines Kultur-insensitiven Vergleichs verwendet wird, finden Sie unter Culture-insensitive Zeichenfolgenvergleiche.
CompareOrdinal-Methode
Die String.CompareOrdinal Methode vergleicht zwei Zeichenfolgenobjekte, ohne die lokale Kultur zu berücksichtigen. Die Rückgabewerte dieser Methode sind identisch mit den Werten, die von der Methode in der Compare vorherigen Tabelle zurückgegeben werden.
Von Bedeutung
Die String.CompareOrdinal Methode ist in erster Linie für die Anordnung oder Sortierung von Zeichenfolgen vorgesehen. Sie sollten die String.CompareOrdinal Methode nicht verwenden, um die Gleichheit zu testen (d. a. um explizit nach einem Rückgabewert von 0 zu suchen, wobei nicht berücksichtigt wird, ob eine Zeichenfolge kleiner oder größer als die andere ist). Verwenden Sie stattdessen die String.Equals(String, String, StringComparison) Methode, um zu bestimmen, ob zwei Zeichenfolgen gleich sind.
Im folgenden Beispiel wird die CompareOrdinal Methode verwendet, um die Werte von zwei Zeichenfolgen zu vergleichen.
string string1 = "Hello World!";
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"));
Dim string1 As String = "Hello World!"
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"))
In diesem Beispiel wird -32 auf der Konsole angezeigt.
CompareTo-Methode
Die String.CompareTo Methode vergleicht die Zeichenfolge, die das aktuelle Zeichenfolgenobjekt kapselt, mit einer anderen Zeichenfolge oder einem anderen Objekt. Die Rückgabewerte dieser Methode sind identisch mit den Werten, die von der Methode in der String.Compare vorherigen Tabelle zurückgegeben werden.
Von Bedeutung
Die String.CompareTo Methode ist in erster Linie für die Anordnung oder Sortierung von Zeichenfolgen vorgesehen. Sie sollten die String.CompareTo Methode nicht verwenden, um die Gleichheit zu testen (d. a. um explizit nach einem Rückgabewert von 0 zu suchen, wobei nicht berücksichtigt wird, ob eine Zeichenfolge kleiner oder größer als die andere ist). Verwenden Sie stattdessen die String.Equals(String, String, StringComparison) Methode, um zu bestimmen, ob zwei Zeichenfolgen gleich sind.
Im folgenden Beispiel wird die String.CompareTo Methode verwendet, um das string1 Objekt mit dem string2 Objekt zu vergleichen.
string string1 = "Hello World";
string string2 = "Hello World!";
int MyInt = string1.CompareTo(string2);
Console.WriteLine( MyInt );
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World!"
Dim MyInt As Integer = string1.CompareTo(string2)
Console.WriteLine(MyInt)
In diesem Beispiel wird -1 auf der Konsole angezeigt.
Bei allen Überladungen der String.CompareTo-Methode führen standardmäßig kultursensitive und groß-/kleinschreibungssensitive Vergleiche durch. Es werden keine Überladungen dieser Methode bereitgestellt, mit denen Sie einen kulturunempfindlichen Vergleich durchführen können. Aus Gründen der Codeverständlichkeit empfehlen wir, stattdessen die String.Compare Methode zu verwenden, indem Sie CultureInfo.CurrentCulture für kultursensitive Vorgänge oder CultureInfo.InvariantCulture für kulturinsensitive Vorgänge angeben. Beispiele, in denen veranschaulicht wird, wie die String.Compare Methode verwendet wird, um sowohl kultursensitive als auch kulturinsensible Vergleiche durchzuführen, finden Sie unter Ausführen Culture-Insensitive Zeichenfolgenvergleiche.
Equals-Methode
Die String.Equals Methode kann ganz einfach ermitteln, ob zwei Zeichenfolgen identisch sind. Bei dieser Groß-/Kleinschreibung beachtenden Methode wird entweder ein true oder ein false boolescher Wert zurückgegeben. Sie kann aus einer vorhandenen Klasse verwendet werden, wie im nächsten Beispiel dargestellt. Im folgenden Beispiel wird die Equals Methode verwendet, um zu bestimmen, ob ein Zeichenfolgenobjekt den Ausdruck "Hello World" enthält.
string string1 = "Hello World";
Console.WriteLine(string1.Equals("Hello World"));
Dim string1 As String = "Hello World"
Console.WriteLine(string1.Equals("Hello World"))
In diesem Beispiel wird True auf der Konsole angezeigt.
Diese Methode kann auch als statische Methode verwendet werden. Im folgenden Beispiel werden zwei Zeichenfolgenobjekte mithilfe einer statischen Methode verglichen.
string string1 = "Hello World";
string string2 = "Hello World";
Console.WriteLine(String.Equals(string1, string2));
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World"
Console.WriteLine(String.Equals(string1, string2))
In diesem Beispiel wird True auf der Konsole angezeigt.
Die Methoden StartsWith und EndsWith
Mit der String.StartsWith Methode können Sie bestimmen, ob ein Zeichenfolgenobjekt mit denselben Zeichen beginnt, die eine andere Zeichenfolge umfassen. Diese Groß-/Kleinschreibung sensitive Methode gibt true zurück, wenn das aktuelle Zeichenfolgenobjekt mit der übergebenen Zeichenfolge beginnt, und false wenn nicht. Im folgenden Beispiel wird mit dieser Methode ermittelt, ob ein Zeichenfolgenobjekt mit "Hello" beginnt.
string string1 = "Hello World";
Console.WriteLine(string1.StartsWith("Hello"));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.StartsWith("Hello"))
In diesem Beispiel wird True auf der Konsole angezeigt.
Die String.EndsWith Methode vergleicht eine übergebene Zeichenfolge mit den Zeichen, die am Ende des aktuellen Zeichenfolgenobjekts vorhanden sind. Außerdem wird ein boolescher Wert zurückgegeben. Im folgenden Beispiel wird das Ende einer Zeichenfolge mithilfe der EndsWith Methode überprüft.
string string1 = "Hello World";
Console.WriteLine(string1.EndsWith("Hello"));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.EndsWith("Hello"))
In diesem Beispiel wird False auf der Konsole angezeigt.
Die Methoden IndexOf und LastIndexOf
Mit der String.IndexOf Methode können Sie die Position des ersten Vorkommens eines bestimmten Zeichens innerhalb einer Zeichenfolge bestimmen. Bei dieser fallsensitiven Methode beginnt die Zählung ab dem Anfang einer Zeichenfolge und gibt die Position eines übergebenen Zeichens mithilfe eines nullbasierten Index zurück. Wenn das Zeichen nicht gefunden werden kann, wird ein Wert von -1 zurückgegeben.
Im folgenden Beispiel wird die IndexOf Methode verwendet, um nach dem ersten Vorkommen des Zeichens "l" in einer Zeichenfolge zu suchen.
string string1 = "Hello World";
Console.WriteLine(string1.IndexOf('l'));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.IndexOf("l"))
In diesem Beispiel wird 2 auf der Konsole angezeigt.
Die String.LastIndexOf Methode ähnelt der String.IndexOf Methode, mit der Ausnahme, dass sie die Position des letzten Vorkommens eines bestimmten Zeichens innerhalb einer Zeichenfolge zurückgibt. Die Groß- und Kleinschreibung wird berücksichtigt, und es wird ein Index verwendet, der bei null beginnt.
Im folgenden Beispiel wird die LastIndexOf Methode verwendet, um nach dem letzten Vorkommen des Zeichens "l" in einer Zeichenfolge zu suchen.
string string1 = "Hello World";
Console.WriteLine(string1.LastIndexOf('l'));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.LastIndexOf("l"))
In diesem Beispiel wird 9 auf der Konsole angezeigt.
Beide Methoden sind nützlich, wenn sie in Verbindung mit der String.Remove Methode verwendet werden. Sie können entweder die IndexOf-Methoden oder die LastIndexOf-Methoden verwenden, um die Position eines Zeichens abzurufen und diese Position dann der Remove-Methode bereitstellen, um ein Zeichen oder ein Wort zu entfernen, das mit diesem Zeichen beginnt.
Siehe auch
- Bewährte Methoden für die Verwendung von Zeichenfolgen in .NET
- Ausführen kulturunabhängiger Zeichenfolgenoperationen
- Sortieren von Gewichtungstabellen – verwendet von .NET Framework und .NET Core 1.0-3.1 unter Windows
- Standardmäßige Unicode-Sortierungselementtabelle – verwendet von .NET 5 auf allen Plattformen und von .NET Core unter Linux und macOS