C-SHARP - 3.6 String
Cette vidéo offre une brève introduction aux chaînes de caractères (string) en C#. Une chaîne est une séquence de caractères entourée de guillemets. Comme toute variable, on déclare le type string, un nom et une valeur :
string prenom = "Medhi";
string nom = "Oubelaid";
string names = prenom + " " + nom; // concatenation avec +
string.Format et string.Join
La concaténation avec + devient vite illisible lorsque plusieurs variables sont mélangées. La méthode statique string.Format de la classe String du framework .NET produit le même résultat avec un template clair. Étant statique, on l'appelle directement sur la classe sans instancier d'objet. Les accolades {0}, {1}… reprennent le principe des index : {0} correspond à la première variable passée après la virgule.
string complet = string.Format("{0} {1}", prenom, nom);
int[] nombres = { 1, 2, 3 };
string concat = string.Join(",", nombres); // "1,2,3"
De son côté, string.Join combine les éléments d'un tableau avec un séparateur passé en premier argument (virgule, point, tiret, ce que vous voulez).
Accès par index et immuabilité
On peut accéder à chaque caractère d'une chaîne par son index, comme dans un tableau. Le type char représente un caractère unique :
char premiere = prenom[0]; // 'M'
Point clé : en C#, les chaînes sont immuables. Une fois créées, on ne peut pas modifier leurs caractères. On peut lire prenom[0], mais pas l'écraser. Les méthodes de la classe String qui « modifient » une chaîne renvoient en réalité une nouvelle chaîne, sans toucher à l'originale.
Caractères d'échappement et arobase
Certains caractères spéciaux ont une signification particulière : \n insère un retour à la ligne, \t une tabulation. Pour écrire un backslash littéral dans une chaîne, il faut le doubler (\\) — c'est le principe des caractères d'échappement.
Pour les chemins Windows ou les expressions régulières, doubler tous les backslashes devient pénible et source d'erreurs. L'arobase (@) placé en préfixe d'une chaîne dit au compilateur de traiter tous les caractères littéralement :
string chemin = @"C:\Users\Documents\fichier.txt"; // pas besoin de doubler
Direction Visual Studio dans la prochaine vidéo pour mettre tout cela en pratique.
En résumé
Cette leçon introduit les chaînes de caractères (strings) en C#, expliquant comment les déclarer avec le type « string » et les entourer de guillemets. Vous découvrirez les principales techniques pour manipuler les chaînes : la concaténation avec l'opérateur +, la méthode String.Format() pour un formatage clair, et String.Join() pour combiner les éléments d'un tableau. La leçon couvre également l'accès aux caractères individuels par index, le concept crucial d'immuabilité des chaînes (elles ne peuvent pas être modifiées directement), et l'utilisation des caractères spéciaux avec échappement (\n pour nouvelle ligne, \t pour tabulation, \\ pour backslash).
Points clés
- Une chaîne est une séquence de caractères déclarée avec le type « string » et entourée de guillemets
- La concaténation peut se faire avec l'opérateur + ou préférablement avec String.Format() pour une meilleure lisibilité et contrôle
- String.Join() combine les éléments d'un tableau avec un séparateur spécifié (virgule, tiret, point, etc.)
- Les caractères individuels sont accessibles par index, où [0] correspond au premier caractère
- Les chaînes en C# sont immuables : elles ne peuvent pas être modifiées directement, toute manipulation retourne une nouvelle chaîne
- Les caractères spéciaux ( , , \) requièrent un échappement avec un antislash pour être interprétés correctement par le compilateur
Questions fréquentes
Comment concaténer plusieurs chaînes en C# de manière lisible et facilement maintenable ?
Utilisez la méthode String.Format() qui permet d'insérer des variables dans une chaîne format à l'aide d'accolades numérotées. Par exemple, String.Format("Je m'appelle {0} {1}", prenom, nom) est beaucoup plus lisible que prenom + " " + nom, surtout avec plusieurs variables.
Que signifie exactement que « les chaînes sont immuables » en C# et quelles sont les conséquences pratiques ?
L'immuabilité signifie qu'une fois créée, une chaîne ne peut pas être modifiée directement. Les méthodes de manipulation retournent toujours une nouvelle chaîne au lieu de modifier l'originale. Par exemple, on ne peut pas assigner prenom[0] = 'X' car le compilateur refusera de compiler ce code.
Quelle est la différence entre la concaténation simple et String.Join() quand on travaille avec un tableau ?
String.Join() est spécifiquement conçue pour combiner tous les éléments d'un tableau avec un séparateur unique. Par exemple, String.Join(",", monTableau) crée automatiquement une chaîne où chaque élément est séparé par une virgule, ce qui est plus efficace et lisible qu'une boucle manuelle de concaténation.