Share via


Modifier la casse dans .NET

Si vous écrivez une application qui accepte l’entrée d’un utilisateur, vous ne pouvez jamais être sûr de la casse (majuscule ou minuscule) qu’elle utilisera pour entrer les données. Souvent, vous voulez que les chaînes aient une casse cohérente, en particulier si vous les affichez dans l'interface utilisateur. Le tableau suivant décrit trois méthodes de changement de la casse : Les deux premières méthodes fournissent une surcharge qui accepte une culture.

Nom de la méthode Utilisation
String.ToUpper Convertit tous les caractères d'une chaîne en majuscules.
String.ToLower Convertit tous les caractères d'une chaîne en minuscules.
TextInfo.ToTitleCase Convertit une chaîne en une casse avec la première lettre des mots en majuscule.

Avertissement

Les méthodes String.ToUpper et String.ToLower ne doivent pas être utilisées pour convertir des chaînes pour les comparer ou pour tester leur égalité. Pour plus d’informations, consultez la section Comparer des chaînes de casse mixte.

Comparer des chaînes de casse mixte

Pour comparer des chaînes de casse mixte et déterminer leur classement, appelez une des surcharges de la méthode String.CompareTo avec un paramètre comparisonType et spécifiez une valeur StringComparison.CurrentCultureIgnoreCase, StringComparison.InvariantCultureIgnoreCase ou StringComparison.OrdinalIgnoreCase pour l’argument comparisonType. Pour une comparaison en utilisant une culture spécifique autre que la culture actuelle, appelez une surcharge de la méthode String.CompareTo avec les paramètres culture et options, et spécifiez une valeur CompareOptions.IgnoreCase pour l'argument options.

Pour comparer des chaînes de casse mixte et déterminer si elles sont égales, appelez une des surcharges de la méthode String.Equals avec un paramètre comparisonType et spécifiez une valeur StringComparison.CurrentCultureIgnoreCase, StringComparison.InvariantCultureIgnoreCase ou StringComparison.OrdinalIgnoreCase pour l’argument comparisonType.

Pour plus d’informations, consultez Bonnes pratiques pour l’utilisation de chaînes.

Méthode ToUpper

La méthode String.ToUpper change tous les caractères d'une chaîne en majuscules. L'exemple suivant convertit la chaîne "Hello World!" d'une casse mixte en majuscules.

string properString = "Hello World!";
Console.WriteLine(properString.ToUpper());
// This example displays the following output:
//       HELLO WORLD!
Dim MyString As String = "Hello World!"
Console.WriteLine(MyString.ToUpper())
' This example displays the following output:
'       HELLO WORLD!

L'exemple précédent est par défaut dépendant de la culture. Il applique les conventions de casse de la culture actuelle. Pour effectuer un changement de casse indépendant de la culture ou appliquer les conventions de casse d’une culture particulière, utilisez la surcharge de la méthode String.ToUpper(CultureInfo) et spécifiez une valeur CultureInfo.InvariantCulture ou un objet System.Globalization.CultureInfo qui représente la culture spécifiée pour le paramètre culture. Pour un exemple montrant comment utiliser la méthode ToUpper pour effectuer un changement de casse indépendant de la culture, consultez Réaliser des changements de casse indépendants de la culture.

Méthode ToLower

La méthode String.ToLower est similaire à la méthode précédente, mais elle convertit tous les caractères d'une chaîne en minuscules. L'exemple suivant convertit la chaîne "Hello World"» en minuscules.

string properString = "Hello World!";
Console.WriteLine(properString.ToLower());
// This example displays the following output:
//       hello world!
Dim MyString As String = "Hello World!"
Console.WriteLine(MyString.ToLower())
' This example displays the following output:
'       hello world!

L'exemple précédent est par défaut dépendant de la culture. Il applique les conventions de casse de la culture actuelle. Pour effectuer un changement de casse indépendant de la culture ou appliquer les conventions de casse d’une culture particulière, utilisez la surcharge de la méthode String.ToLower(CultureInfo) et spécifiez une valeur CultureInfo.InvariantCulture ou un objet System.Globalization.CultureInfo qui représente la culture spécifiée pour le paramètre culture. Pour un exemple montrant comment utiliser la méthode ToLower(CultureInfo) pour effectuer un changement de casse indépendant de la culture, consultez Réaliser des changements de casse indépendants de la culture.

Méthode ToTitleCase

La méthode TextInfo.ToTitleCase convertit le premier caractère de chaque mot en majuscules et les autres caractères en minuscules. Cependant, les mots qui sont entièrement en majuscules sont supposés être des acronymes et ne sont pas convertis.

La méthode TextInfo.ToTitleCase est dépendante de la culture ; autrement dit, elle utilise les conventions de casse d'une culture particulière. Pour pouvoir appeler la méthode, vous récupérez d'abord l'objet TextInfo qui représente les conventions de casse de la culture spécifique auprès de la propriété CultureInfo.TextInfo d'une culture particulière.

L'exemple suivant passe chaque chaîne d'un tableau à la méthode TextInfo.ToTitleCase. Les chaînes incluent des chaînes de titre appropriées, ainsi que des acronymes. Les chaînes sont converties en casse avec la première lettre des mots en majuscules en utilisant les conventions de casse de la culture Anglais (États-Unis).

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] values = { "a tale of two cities", "gROWL to the rescue",
                          "inside the US government", "sports and MLB baseball",
                          "The Return of Sherlock Holmes", "UNICEF and children"};

      TextInfo ti = CultureInfo.CurrentCulture.TextInfo;
      foreach (var value in values)
         Console.WriteLine("{0} --> {1}", value, ti.ToTitleCase(value));
   }
}
// The example displays the following output:
//    a tale of two cities --> A Tale Of Two Cities
//    gROWL to the rescue --> Growl To The Rescue
//    inside the US government --> Inside The US Government
//    sports and MLB baseball --> Sports And MLB Baseball
//    The Return of Sherlock Holmes --> The Return Of Sherlock Holmes
//    UNICEF and children --> UNICEF And Children
Imports System.Globalization

Module Example
    Public Sub Main()
        Dim values() As String = {"a tale of two cities", "gROWL to the rescue",
                                   "inside the US government", "sports and MLB baseball",
                                   "The Return of Sherlock Holmes", "UNICEF and children"}

        Dim ti As TextInfo = CultureInfo.CurrentCulture.TextInfo
        For Each value In values
            Console.WriteLine("{0} --> {1}", value, ti.ToTitleCase(value))
        Next
    End Sub
End Module
' The example displays the following output:
'    a tale of two cities --> A Tale Of Two Cities
'    gROWL to the rescue --> Growl To The Rescue
'    inside the US government --> Inside The US Government
'    sports and MLB baseball --> Sports And MLB Baseball
'    The Return of Sherlock Holmes --> The Return Of Sherlock Holmes
'    UNICEF and children --> UNICEF And Children

Notez que bien qu'elle soit dépendante de la culture, la méthode TextInfo.ToTitleCase ne fournit pas de règles de casse correctes d'un point de vue linguistique. Par exemple, dans l'exemple précédent, la méthode convertit "a tale of two cities" en "A Tale Of Two Cities". Cependant, la casse linguistiquement correcte de ce titre pour la culture en-US est "A Tale of Two Cities".

Voir aussi