Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
.NET fournit plusieurs méthodes pour comparer les valeurs des chaînes. Le tableau suivant répertorie et décrit les méthodes de comparaison de valeurs.
Nom de la méthode | Utiliser |
---|---|
String.Compare | Compare les valeurs de deux chaînes. Retourne une valeur entière. |
String.CompareOrdinal | Compare deux chaînes de caractères sans tenir compte de la culture locale. Retourne une valeur entière. |
String.CompareTo | Compare l’objet de chaîne actuel à une autre chaîne. Retourne une valeur entière. |
String.StartsWith | Déterminer si une chaîne de caractères commence par la chaîne de caractères passée. Retourne une valeur booléenne. |
String.EndsWith | Détermine si une chaîne se termine par la chaîne passée. Retourne une valeur booléenne. |
String.Contains | Détermine si un caractère ou une chaîne se produit dans une autre chaîne. Retourne une valeur booléenne. |
String.Equals | Détermine si deux chaînes sont identiques. Retourne une valeur booléenne. |
String.IndexOf | Retourne la position d’index d’un caractère ou d’une chaîne, à partir du début de la chaîne que vous examinez. Retourne une valeur entière. |
String.LastIndexOf | Retourne la position d’index d’un caractère ou d’une chaîne, à partir de la fin de la chaîne que vous examinez. Retourne une valeur entière. |
méthode Compare
La méthode statique String.Compare fournit un moyen approfondi de comparer deux chaînes. Cette méthode est sensible à la culture. Vous pouvez utiliser cette fonction pour comparer deux chaînes ou sous-chaînes de deux chaînes. En outre, les surcharges sont fournies en ce qui concerne ou ignorent les cas et les écarts culturels. Le tableau suivant montre les trois valeurs entières que cette méthode peut retourner.
Valeur retournée | État |
---|---|
Entier négatif | La première chaîne précède la deuxième chaîne dans l’ordre de tri. - ou - La première chaîne est null . |
0 | La première chaîne et la deuxième chaîne sont égales. - ou - Les deux chaînes sont null . |
Entier positif - ou - 1 |
La première chaîne suit la deuxième chaîne dans l’ordre de tri. - ou - La deuxième chaîne est null . |
Importante
La String.Compare méthode est principalement destinée à être utilisée lors de l’ordre ou du tri des chaînes. Vous ne devez pas utiliser la méthode pour tester l’égalité String.Compare (autrement dit, pour rechercher explicitement une valeur de retour de 0 sans tenir compte si une chaîne est inférieure ou supérieure à l’autre). Au lieu de cela, pour déterminer si deux chaînes sont égales, utilisez la String.Equals(String, String, StringComparison) méthode.
L’exemple suivant utilise la String.Compare méthode pour déterminer les valeurs relatives de deux chaînes.
string string1 = "Hello World!";
Console.WriteLine(String.Compare(string1, "Hello World?"));
Dim string1 As String = "Hello World!"
Console.WriteLine(String.Compare(string1, "Hello World?"))
Cet exemple affiche -1
dans la console.
L’exemple précédent est sensible aux différences culturelles par défaut. Pour effectuer une comparaison de chaînes non sensibles à la culture, utilisez une surcharge de la méthode String.Compare qui permet de spécifier la culture à utiliser en passant un paramètre culture. Pour obtenir un exemple qui montre comment utiliser la méthode pour effectuer une comparaison sans respect de la String.Compare culture, consultez comparaisons de chaînes non sensibles à la culture.
méthode CompareOrdinal
La String.CompareOrdinal méthode compare deux objets de chaîne sans tenir compte de la culture locale. Les valeurs de retour de cette méthode sont identiques aux valeurs retournées par la Compare
méthode dans le tableau précédent.
Importante
La String.CompareOrdinal méthode est principalement destinée à être utilisée lors de l’ordre ou du tri des chaînes. Vous ne devez pas utiliser la méthode pour tester l’égalité String.CompareOrdinal (autrement dit, pour rechercher explicitement une valeur de retour de 0 sans tenir compte si une chaîne est inférieure ou supérieure à l’autre). Au lieu de cela, pour déterminer si deux chaînes sont égales, utilisez la String.Equals(String, String, StringComparison) méthode.
L’exemple suivant utilise la CompareOrdinal
méthode pour comparer les valeurs de deux chaînes.
string string1 = "Hello World!";
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"));
Dim string1 As String = "Hello World!"
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"))
Cet exemple affiche -32
dans la console.
méthode CompareTo
La String.CompareTo méthode compare la chaîne que l’objet de chaîne actuel encapsule à une autre chaîne ou objet. Les valeurs de retour de cette méthode sont identiques aux valeurs retournées par la String.Compare méthode dans le tableau précédent.
Importante
La String.CompareTo méthode est principalement destinée à être utilisée lors de l’ordre ou du tri des chaînes. Vous ne devez pas utiliser la méthode pour tester l’égalité String.CompareTo (autrement dit, pour rechercher explicitement une valeur de retour de 0 sans tenir compte si une chaîne est inférieure ou supérieure à l’autre). Au lieu de cela, pour déterminer si deux chaînes sont égales, utilisez la String.Equals(String, String, StringComparison) méthode.
L’exemple suivant utilise la String.CompareTo méthode pour comparer l’objet string1
à l’objet string2
.
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)
Cet exemple affiche -1
dans la console.
Toutes les surcharges de la String.CompareTo méthode effectuent des comparaisons respectant la culture et respectant la casse par défaut. Aucune surcharge de cette méthode n’est fournie, ce qui vous permet d’effectuer une comparaison sans respect de la culture. Pour plus de clarté du code, nous vous recommandons d'utiliser la méthode String.Compare
à la place, en spécifiant CultureInfo.CurrentCulture pour les opérations sensibles à la culture ou CultureInfo.InvariantCulture pour les opérations non sensibles à la culture. Pour des exemples illustrant comment utiliser la méthode String.Compare
pour effectuer des comparaisons sensibles et insensibles à la culture, consultez Comparaisons de chaînes Culture-Insensitive.
méthode Equals
La String.Equals méthode peut facilement déterminer si deux chaînes sont identiques. Cette méthode sensible à la casse retourne une valeur booléenne true
ou false
. Il peut être utilisé à partir d’une classe existante, comme illustré dans l’exemple suivant. L’exemple suivant utilise la Equals
méthode pour déterminer si un objet de chaîne contient l’expression « Hello World ».
string string1 = "Hello World";
Console.WriteLine(string1.Equals("Hello World"));
Dim string1 As String = "Hello World"
Console.WriteLine(string1.Equals("Hello World"))
Cet exemple affiche True
dans la console.
Cette méthode peut également être utilisée comme méthode statique. L’exemple suivant compare deux objets de chaîne à l’aide d’une méthode statique.
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))
Cet exemple affiche True
dans la console.
Méthodes StartsWith
et EndsWith
Vous pouvez utiliser la String.StartsWith méthode pour déterminer si un objet de chaîne commence par les mêmes caractères qu’une autre chaîne. Cette méthode sensible à la casse retourne true
si l’objet de chaîne actuel commence par la chaîne passée et false
si ce n’est pas le cas. L’exemple suivant utilise cette méthode pour déterminer si un objet de chaîne commence par « Hello ».
string string1 = "Hello World";
Console.WriteLine(string1.StartsWith("Hello"));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.StartsWith("Hello"))
Cet exemple affiche True
dans la console.
La String.EndsWith méthode compare une chaîne passée aux caractères qui existent à la fin de l’objet string actuel. Elle retourne également une valeur booléenne. L’exemple suivant vérifie la fin d’une chaîne à l’aide de la EndsWith
méthode.
string string1 = "Hello World";
Console.WriteLine(string1.EndsWith("Hello"));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.EndsWith("Hello"))
Cet exemple affiche False
dans la console.
Méthodes IndexOf
et LastIndexOf
Vous pouvez utiliser la String.IndexOf méthode pour déterminer la position de la première occurrence d’un caractère particulier dans une chaîne. Cette méthode sensible à la casse commence à compter du début d’une chaîne et retourne la position du caractère passé en utilisant un index à base zéro. Si le caractère est introuvable, une valeur de –1 est retournée.
L’exemple suivant utilise la IndexOf
méthode pour rechercher la première occurrence du caractère «l
» dans une chaîne.
string string1 = "Hello World";
Console.WriteLine(string1.IndexOf('l'));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.IndexOf("l"))
Cet exemple affiche 2
dans la console.
La String.LastIndexOf méthode est similaire à la String.IndexOf
méthode, sauf qu’elle retourne la position de la dernière occurrence d’un caractère particulier dans une chaîne. Il respecte la casse et utilise un index de base zéro.
L’exemple suivant utilise la LastIndexOf
méthode pour rechercher la dernière occurrence du caractère «l
» dans une chaîne.
string string1 = "Hello World";
Console.WriteLine(string1.LastIndexOf('l'));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.LastIndexOf("l"))
Cet exemple affiche 9
dans la console.
Les deux méthodes sont utiles lorsqu’elles sont utilisées conjointement avec la String.Remove méthode. Vous pouvez utiliser soit la méthode IndexOf
ou la méthode LastIndexOf
pour récupérer la position d'un caractère, puis fournir cette position à la méthode Remove
afin de supprimer un caractère ou un mot qui commence par ce caractère.
Voir aussi
- Meilleures pratiques pour l’utilisation de chaînes dans .NET
- Opérations de chaîne de base
- Effectuer des opérations de chaîne non sensibles à la culture
- Tables de pondération de tri - utilisées par .NET Framework et .NET Core 1.0-3.1 sur Windows
- Tableau d’éléments de classement Unicode par défaut - utilisé par .NET 5 sur toutes les plateformes et par .NET Core sur Linux et macOS