Vergleichen von Zeichenfolgen in .NETComparing Strings in .NET

.NET stellt mehrere Methoden bereit, um Werte von Zeichenfolgen zu vergleichen..NET provides several methods to compare the values of strings. In der folgenden Tabelle werden die Methoden zum Vergleichen von Werten aufgeführt und beschrieben.The following table lists and describes the value-comparison methods.

MethodennameMethod name MitUse
String.Compare Vergleicht die Werte zweier Zeichenfolgen.Compares the values of two strings. Gibt einen Ganzzahlwert zurück.Returns an integer value.
String.CompareOrdinal Vergleicht zwei Zeichenfolgen, ohne die Einstellungen der lokalen Kultur zu berücksichtigen.Compares two strings without regard to local culture. Gibt einen Ganzzahlwert zurück.Returns an integer value.
String.CompareTo Vergleicht das aktuelle Zeichenfolgenobjekt mit einer anderen Zeichenfolge.Compares the current string object to another string. Gibt einen Ganzzahlwert zurück.Returns an integer value.
String.StartsWith Stellt fest, ob eine Zeichenfolge mit der übergebenen Zeichenfolge beginnt.Determines whether a string begins with the string passed. Gibt einen booleschen Wert zurück.Returns a Boolean value.
String.EndsWith Stellt fest, ob eine Zeichenfolge mit der übergebenen Zeichenfolge endet.Determines whether a string ends with the string passed. Gibt einen booleschen Wert zurück.Returns a Boolean value.
String.Equals Stellt fest, ob zwei Zeichenfolgen identisch sind.Determines whether two strings are the same. Gibt einen booleschen Wert zurück.Returns a Boolean value.
String.IndexOf Gibt ausgehend vom Anfang der zu überprüfenden Zeichenfolge die Indexposition eines Zeichens oder einer Zeichenfolge zurück.Returns the index position of a character or string, starting from the beginning of the string you are examining. Gibt einen Ganzzahlwert zurück.Returns an integer value.
String.LastIndexOf Gibt ausgehend vom Ende der zu überprüfenden Zeichenfolge die Indexposition eines Zeichens oder einer Zeichenfolge zurück.Returns the index position of a character or string, starting from the end of the string you are examining. Gibt einen Ganzzahlwert zurück.Returns an integer value.

VergleichenCompare

Die statische String.Compare-Methode bietet umfassende Möglichkeiten zum Vergleichen von zwei Zeichenfolgen.The static String.Compare method provides a thorough way of comparing two strings. Bei dieser Methode werden unterschiedliche Kulturen berücksichtigt.This method is culturally aware. Sie können diese Funktion verwenden, um zwei Zeichenfolgen oder zwei untergeordnete Zeichenfolgen zweier Zeichenfolgen miteinander zu vergleichen.You can use this function to compare two strings or substrings of two strings. Zusätzlich sind Überladungen verfügbar, mit denen die Groß-/Kleinschreibung sowie abweichende Kulturen berücksichtigt bzw. ignoriert werden können.Additionally, overloads are provided that regard or disregard case and cultural variance. In der folgenden Tabelle sind die drei ganzzahligen Werte aufgeführt, die von dieser Methode zurückgegeben werden können.The following table shows the three integer values that this method might return.

RückgabewertReturn value BedingungCondition
Eine negative ganze ZahlA negative integer Die erste Zeichenfolge steht in der Sortierreihenfolge vor der zweiten Zeichenfolge.The first string precedes the second string in the sort order.

- oder - -or-

Die erste Zeichenfolge ist null.The first string is null.
00 Die erste Zeichenfolge und die zweite Zeichenfolge sind gleich.The first string and the second string are equal.

- oder - -or-

Beide Zeichenfolgen sind null.Both strings are null.
Eine positive ganze ZahlA positive integer

- oder - -or-

11
Die erste Zeichenfolge steht in der Sortierreihenfolge hinter der zweiten Zeichenfolge.The first string follows the second string in the sort order.

- oder - -or-

Die zweite Zeichenfolge ist null.The second string is null.

Wichtig

Die String.Compare-Methode ist hauptsächlich für die Anordnung oder Sortierung von Zeichenfolgen bestimmt.The String.Compare method is primarily intended for use when ordering or sorting strings. Sie sollten die String.Compare-Methode nicht verwenden, um einen Übereinstimmungstest auszuführen (also um explizit nach dem Rückgabewert 0 zu suchen, ohne dass dabei berücksichtigt wird, ob eine Zeichenfolge kleiner oder größer als die andere ist).You should not use the String.Compare method to test for equality (that is, to explicitly look for a return value of 0 with no regard for whether one string is less than or greater than the other). Um festzustellen, ob zwei Zeichenfolgen gleich sind, verwenden Sie stattdessen die String.Equals(String, String, StringComparison)-Methode.Instead, to determine whether two strings are equal, use the String.Equals(String, String, StringComparison) method.

Im folgenden Beispiel wird die String.Compare-Methode verwendet, um die relativen Werte von zwei Zeichenfolgen zu bestimmen.The following example uses the String.Compare method to determine the relative values of two strings.

String^ string1 = "Hello World!";
Console::WriteLine(String::Compare(string1, "Hello World?"));
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.This example displays -1 to the console.

Das vorhergehende Beispiel ist in der Standardeinstellung kulturabhängig.The preceding example is culture-sensitive by default. Zum Durchführen eines kulturunabhängigen Zeichenfolgenvergleichs verwenden Sie eine Überladung der String.Compare-Methode, bei der Sie die zu verwendende Kultur festlegen können, indem Sie einen culture-Parameter angeben.To perform a culture-insensitive string comparison, use an overload of the String.Compare method that allows you to specify the culture to use by supplying a culture parameter. Ein Beispiel für die Verwendung der String.Compare-Methode zur Durchführung eines kulturunabhängigen Vergleichs finden Sie unter Durchführen kulturunabhängiger Zeichenfolgenvergleiche.For an example that demonstrates how to use the String.Compare method to perform a culture-insensitive comparison, see Performing Culture-Insensitive String Comparisons.

CompareOrdinalCompareOrdinal

Mit der String.CompareOrdinal-Methode werden zwei Zeichenfolgenobjekte ohne Berücksichtigung der lokalen Kultur verglichen.The String.CompareOrdinal method compares two string objects without considering the local culture. Die Rückgabewerte dieser Methode stimmen mit den Werten überein, die von der in der vorherigen Tabelle beschriebenen Compare -Methode zurückgegeben werden.The return values of this method are identical to the values returned by the Compare method in the previous table.

Wichtig

Die String.CompareOrdinal-Methode ist hauptsächlich für die Anordnung oder Sortierung von Zeichenfolgen bestimmt.The String.CompareOrdinal method is primarily intended for use when ordering or sorting strings. Sie sollten die String.CompareOrdinal-Methode nicht verwenden, um einen Übereinstimmungstest auszuführen (also um explizit nach dem Rückgabewert 0 zu suchen, ohne dass dabei berücksichtigt wird, ob eine Zeichenfolge kleiner oder größer als die andere ist).You should not use the String.CompareOrdinal method to test for equality (that is, to explicitly look for a return value of 0 with no regard for whether one string is less than or greater than the other). Um festzustellen, ob zwei Zeichenfolgen gleich sind, verwenden Sie stattdessen die String.Equals(String, String, StringComparison)-Methode.Instead, to determine whether two strings are equal, use the String.Equals(String, String, StringComparison) method.

Im folgenden Beispiel wird die CompareOrdinal -Methode verwendet, um die Werte von zwei Zeichenfolgen zu vergleichen.The following example uses the CompareOrdinal method to compare the values of two strings.

String^ string1 = "Hello World!";
Console::WriteLine(String::CompareOrdinal(string1, "hello world!"));
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.This example displays -32 to the console.

CompareToCompareTo

Mit der String.CompareTo-Methode wird die im aktuellen Zeichenfolgenobjekt gekapselte Zeichenfolge mit einer anderen Zeichenfolge oder einem anderen Objekt verglichen.The String.CompareTo method compares the string that the current string object encapsulates to another string or object. Die Rückgabewerte dieser Methode stimmen mit den Werten überein, die von der in der vorherigen Tabelle beschriebenen String.Compare-Methode zurückgegeben werden.The return values of this method are identical to the values returned by the String.Compare method in the previous table.

Wichtig

Die String.CompareTo-Methode ist hauptsächlich für die Anordnung oder Sortierung von Zeichenfolgen bestimmt.The String.CompareTo method is primarily intended for use when ordering or sorting strings. Sie sollten die String.CompareTo-Methode nicht verwenden, um einen Übereinstimmungstest auszuführen (also um explizit nach dem Rückgabewert 0 zu suchen, ohne dass dabei berücksichtigt wird, ob eine Zeichenfolge kleiner oder größer als die andere ist).You should not use the String.CompareTo method to test for equality (that is, to explicitly look for a return value of 0 with no regard for whether one string is less than or greater than the other). Um festzustellen, ob zwei Zeichenfolgen gleich sind, verwenden Sie stattdessen die String.Equals(String, String, StringComparison)-Methode.Instead, to determine whether two strings are equal, use the String.Equals(String, String, StringComparison) method.

Im folgenden Beispiel wird die String.CompareTo-Methode verwendet, um das string1-Objekt mit dem string2-Objekt zu vergleichen.The following example uses the String.CompareTo method to compare the string1 object to the string2 object.

String^ string1 = "Hello World";
String^ string2 = "Hello World!";
int MyInt = string1->CompareTo(string2);
Console::WriteLine( MyInt );
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.This example displays -1 to the console.

Alle Überladungen der String.CompareTo-Methode führen in der Standardeinstellung kulturabhängige Vergleiche durch, bei denen die Groß- und Kleinschreibung berücksichtigt wird.All overloads of the String.CompareTo method perform culture-sensitive and case-sensitive comparisons by default. Es werden keine Überladungen dieser Methode bereitgestellt, mit denen Sie einen kulturunabhängigen Vergleich durchführen können.No overloads of this method are provided that allow you to perform a culture-insensitive comparison. Aus Gründen der Übersichtlichkeit des Codes wird empfohlen, stattdessen die String.Compare-Methode zu verwenden und für kulturabhängige Vorgänge CultureInfo.CurrentCulture sowie für kulturunabhängige Vorgänge CultureInfo.InvariantCulture festzulegen.For code clarity, we recommend that you use the String.Compare method instead, specifying CultureInfo.CurrentCulture for culture-sensitive operations or CultureInfo.InvariantCulture for culture-insensitive operations. Beispiele für die Verwendung der String.Compare -Methode zur Durchführung von kulturabhängigen und kulturunabhängigen Vergleichen finden Sie unter Durchführen kulturunabhängiger Zeichenfolgenvergleiche.For examples that demonstrate how to use the String.Compare method to perform both culture-sensitive and culture-insensitive comparisons, see Performing Culture-Insensitive String Comparisons.

gleichEquals

Mit der String.Equals -Methode lässt sich auf einfache Weise feststellen, ob zwei Zeichenfolgen identisch sind.The String.Equals method can easily determine if two strings are the same. Diese Methode, bei der die Groß-/Kleinschreibung beachtet wird, gibt den booleschen Wert true oder false zurück.This case-sensitive method returns a true or false Boolean value. Wie das nächste Beispiel zeigt, kann die Methode einer bestehenden Klasse verwendet werden.It can be used from an existing class, as illustrated in the next example. Im folgenden Beispiel wird mithilfe der Equals -Methode festgestellt, ob ein Zeichenfolgenobjekt den Ausdruck "Hello World" enthält.The following example uses the Equals method to determine whether a string object contains the phrase "Hello World".

String^ string1 = "Hello World";
Console::WriteLine(string1->Equals("Hello World"));
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.This example displays True to the console.

Diese Methode kann auch als statische Methode verwendet werden.This method can also be used as a static method. Im folgenden Beispiel werden zwei Zeichenfolgenobjekte mithilfe einer statischen Methode verglichen.The following example compares two string objects using a static method.

String^ string1 = "Hello World";
String^ string2 = "Hello World";
Console::WriteLine(String::Equals(string1, string2));
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.This example displays True to the console.

"StartsWith" und "EndsWith"StartsWith and EndsWith

Mit der String.StartsWith -Methode können Sie feststellen, ob ein Zeichenfolgenobjekt mit denselben Zeichen beginnt, die eine andere Zeichenfolge enthält.You can use the String.StartsWith method to determine whether a string object begins with the same characters that encompass another string. Diese Methode, bei der die Groß-/Kleinschreibung beachtet wird, gibt true zurück, wenn das aktuelle Zeichenfolgenobjekt mit der übergebenen Zeichenfolge beginnt, und sie gibt false zurück, wenn dies nicht der Fall ist.This case-sensitive method returns true if the current string object begins with the passed string and false if it does not. Im folgenden Beispiel wird mithilfe dieser Methode festgestellt, ob ein Zeichenfolgenobjekt mit "Hello" beginnt.The following example uses this method to determine if a string object begins with "Hello".

String^ string1 = "Hello World";
Console::WriteLine(string1->StartsWith("Hello"));
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.This example displays True to the console.

Bei der String.EndsWith -Methode wird eine übergebene Zeichenfolge mit den Zeichen am Ende des aktuellen Zeichenfolgenobjekts verglichen.The String.EndsWith method compares a passed string to the characters that exist at the end of the current string object. Auch sie gibt einen booleschen Wert zurück.It also returns a Boolean value. Im folgenden Beispiel wird das Ende einer Zeichenfolge mithilfe der EndsWith -Methode überprüft.The following example checks the end of a string using the EndsWith method.

String^ string1 = "Hello World";
Console::WriteLine(string1->EndsWith("Hello"));
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.This example displays False to the console.

"IndexOf" und "LastIndexOf"IndexOf and LastIndexOf

Mit der String.IndexOf -Methode können Sie die Position feststellen, an der ein bestimmtes Zeichen in einer Zeichenfolge erstmalig vorkommt.You can use the String.IndexOf method to determine the position of the first occurrence of a particular character within a string. Bei dieser Methode, die die Groß-/Kleinschreibung beachtet, beginnt die Zählung am Anfang einer Zeichenfolge; sie gibt die Position eines übergebenen Zeichens auf der Grundlage eines nullbasierten Indizes zurück.This case-sensitive method starts counting from the beginning of a string and returns the position of a passed character using a zero-based index. Wenn das Zeichen nicht gefunden wird, wird der Wert –1 zurückgegeben.If the character cannot be found, a value of –1 is returned.

Im folgenden Beispiel wird die IndexOf -Methode verwendet, um in einer Zeichenfolge nach dem ersten Vorkommnis des Zeichens 'l' zu suchen.The following example uses the IndexOf method to search for the first occurrence of the 'l' character in a string.

String^ string1 = "Hello World";
Console::WriteLine(string1->IndexOf('l'));
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.This example displays 2 to the console.

Die String.LastIndexOf -Methode ist vergleichbar mit der String.IndexOf -Methode, außer dass sie die Position zurückgibt, an der ein bestimmtes Zeichen innerhalb einer Zeichenfolge letztmalig vorkommt.The String.LastIndexOf method is similar to the String.IndexOf method except that it returns the position of the last occurrence of a particular character within a string. Sie beachtet die Groß-/Kleinschreibung und verwendet einen nullbasierten Index.It is case-sensitive and uses a zero-based index.

Im folgenden Beispiel wird die LastIndexOf -Methode verwendet, um in einer Zeichenfolge nach dem letzten Vorkommnis des Zeichens 'l' zu suchen.The following example uses the LastIndexOf method to search for the last occurrence of the 'l' character in a string.

String^ string1 = "Hello World";
Console::WriteLine(string1->LastIndexOf('l'));
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.This example displays 9 to the console.

Beide Methoden sind hilfreich, wenn sie in Verbindung mit der String.Remove -Methode verwendet werden.Both methods are useful when used in conjunction with the String.Remove method. Sie können die IndexOf -Methode oder die LastIndexOf -Methode verwenden, um die Position eines Zeichens abzurufen, und diese Position dann an die Remove -Methode übergeben, um ein Zeichen oder ein Wort zu entfernen, das mit diesem Zeichen beginnt.You can use either the IndexOf or LastIndexOf methods to retrieve the position of a character, and then supply that position to the Remove method in order to remove a character or a word that begins with that character.

Siehe auchSee Also

Grundlegende ZeichenfolgenoperationenBasic String Operations
Durchführen kulturunabhängiger ZeichenfolgenoperationenPerforming Culture-Insensitive String Operations