C-SHARP - 4.6 String Avancée

Cette vidéo approfondit les chaînes de caractères en C#. Rappel : string est associé à la classe String du framework .NET, et les chaînes sont immuables — toute « modification » crée en réalité une nouvelle chaîne. Voici un tour des méthodes les plus utiles regroupées par catégorie.

Formatage et recherche

  • ToLower() / ToUpper() : copie en minuscules ou majuscules.
  • Trim() : supprime les espaces en début et fin de chaîne (pas ceux du milieu). Indispensable lors des inscriptions utilisateur pour éviter qu'un espace fortuit fausse un tri alphabétique.
  • IndexOf("n") : renvoie l'index de la première occurrence (ou -1 si absente).
  • LastIndexOf("n") : même principe, mais parcourt depuis la fin. L'index renvoyé reste compté depuis le début.

Substring et Replace

Substring(index) extrait une copie à partir d'un index jusqu'à la fin. Surchargée avec deux paramètres Substring(index, longueur), elle extrait une portion de longueur donnée — exactement ce que fait une notification de téléphone pour ne montrer qu'un aperçu d'un long message :

string phrase = "Bonjour a tous et bienvenue";
string aperc = phrase.Substring(0, 10);     // "Bonjour a "
string remplacee = phrase.Replace("a", "e"); // changer tous les a en e

Tests de vacuité et fractionnement

string.IsNullOrEmpty(s) renvoie true si la chaîne est strictement vide ou null. string.IsNullOrWhiteSpace(s) est plus tolérante : elle renvoie true aussi si la chaîne ne contient que des espaces.

Split(separateur) fractionne une chaîne en un tableau, à chaque occurrence du séparateur. Très courant pour transformer une phrase en mots :

string[] mots = "Bonjour a tous".Split(' ');
// mots = { "Bonjour", "a", "tous" }

Conversions string ↔ nombre

Quand un utilisateur saisit un nombre via Console.ReadLine(), c'est toujours une string. Deux méthodes pour convertir :

int age = int.Parse(saisie);            // exception si chaine vide
int age2 = Convert.ToInt32(saisie);     // retourne 0 si chaine vide

Convert.ToInt32 est plus sûre car elle évite l'exception sur chaîne vide. Pour la conversion inverse, ToString() sur un nombre renvoie sa représentation textuelle. Avec un format en paramètre, on peut formater proprement : prix.ToString("C") renvoie une valeur monétaire (« currency ») avec séparateurs de milliers, "C0" sans décimales. La documentation Microsoft (chaînes de format numérique C#) liste tous les spécificateurs disponibles. La prochaine vidéo proposera une démo de toutes ces méthodes.

En résumé

Cette leçon couvre les méthodes avancées de manipulation des chaînes de caractères en C#. Elle explique comment formatter (ToLower, ToUpper, Trim), rechercher (IndexOf, LastIndexOf) et extraire des portions de chaîne (Substring), tout en rappelant que les strings sont immuables. Chaque méthode est illustrée par des exemples pratiques montrant son usage et ses cas d'application réels, notamment pour nettoyer les données utilisateur.

Points clés

  • Les chaînes de caractères en C# sont immuables : une fois créées, elles ne peuvent pas être modifiées directement
  • ToLower et ToUpper convertissent tous les caractères respectivement en minuscules et majuscules
  • Trim supprime les espaces au début et à la fin d'une chaîne, essentiel pour valider les données utilisateur
  • IndexOf et LastIndexOf trouvent la position d'un caractère ou mot, retournant -1 s'il n'existe pas
  • Substring extrait une portion de chaîne à partir d'un index, avec surcharge permettant de spécifier aussi la longueur
  • La surcharge de méthode permet à Substring d'exister avec 1 paramètre (index) ou 2 paramètres (index + longueur)

Questions fréquentes

Pourquoi la méthode Trim est-elle particulièrement utile dans un projet web ?

Trim supprime les espaces au début et à la fin des données saisies par l'utilisateur. Cela évite que des espaces accidentels ne faussent des tris alphabétiques ou des comparaisons, par exemple lors de l'inscription d'un utilisateur qui aurait mis un espace devant son nom.

Qu'est-ce qu'une méthode surchargée et comment cela s'applique à Substring ?

Une méthode surchargée porte le même nom mais accepte des paramètres différents en nombre ou en type. Substring existe en deux versions : une avec 1 paramètre (l'index de départ) qui retourne le reste de la chaîne, et une avec 2 paramètres (index + longueur) pour extraire une portion spécifique.

Quelle est la différence entre IndexOf et LastIndexOf ?

IndexOf parcourt la chaîne du début à la fin et retourne la position de la première occurrence. LastIndexOf parcourt à partir de la fin et retourne la position de la dernière occurrence. Dans les deux cas, l'index retourné est compté à partir du début de la chaîne.