Retour au blog
Auteur: Publié le 38 vues
Exemples C# Console 2 : méthodes de chaînes

Exemples C# Console 2 : méthodes de chaînes

Apprenez les méthodes de chaînes en C# Console avec des exemples de nettoyage, recherche, découpage, remplacement et formatage, code et résultats inclus.

Les chaînes de caractères sont utilisées dans presque tous les programmes : noms, messages, chemins, données de formulaire ou contenu de fichiers. C# fournit de nombreuses méthodes pour les nettoyer, les rechercher, les découper et les transformer. Cette deuxième série C# Console présente les méthodes les plus utiles avec des exemples simples.

Préparer un projet Console

Créez un projet puis exécutez-le avec le SDK .NET :

BASH
dotnet new console -n StringExamples
cd StringExamples
dotnet run

Supprimer les espaces avec Trim

Trim enlève les espaces au début et à la fin. TrimStart et TrimEnd ciblent un seul côté.

CSHARP
string saisie = "   Maximum Yazılım   ";
Console.WriteLine(saisie.Trim());
RÉSULTAT
Maximum Yazılım

La chaîne d’origine n’est pas modifiée : les chaînes C# sont immuables et la méthode renvoie une nouvelle valeur.

Modifier la casse

ToUpper et ToLower transforment l’affichage. Pour une opération dépendante de la culture, précisez la culture souhaitée. Pour des clés techniques et comparaisons internes, utilisez souvent les variantes invariant ou un StringComparison explicite.

CSHARP
string language = "CSharp";
Console.WriteLine(language.ToUpperInvariant());
Console.WriteLine(language.ToLowerInvariant());

Rechercher avec Contains, StartsWith et EndsWith

CSHARP
string fileName = "rapport-2026.pdf";
Console.WriteLine(fileName.Contains("2026", StringComparison.OrdinalIgnoreCase));
Console.WriteLine(fileName.StartsWith("rapport", StringComparison.OrdinalIgnoreCase));
Console.WriteLine(fileName.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase));

Le paramètre StringComparison rend l’intention explicite et évite certaines erreurs liées à la casse ou à la culture.

Trouver une position avec IndexOf

IndexOf renvoie l’index de la première occurrence, ou -1 si la valeur n’existe pas.

CSHARP
string email = "info@maximumyazilim.com";
int atIndex = email.IndexOf('@');
Console.WriteLine(atIndex);

Vérifiez toujours que le résultat est supérieur ou égal à zéro avant de l’utiliser dans une découpe.

Remplacer du texte

CSHARP
string message = "Projet en attente";
string updated = message.Replace("en attente", "prêt");
Console.WriteLine(updated);

Replace effectue un remplacement littéral. Pour des règles complexes, les expressions régulières peuvent convenir, mais elles doivent rester lisibles et testées.

Découper avec Split

CSHARP
string tags = "web,seo,csharp";
string[] values = tags.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);

foreach (string value in values)
{
    Console.WriteLine(value);
}
RÉSULTAT
web
seo
csharp

Les options permettent d’ignorer les entrées vides et de nettoyer les espaces. Pour un fichier CSV réel, utilisez une bibliothèque dédiée, car les guillemets et séparateurs échappés rendent le format plus complexe.

Extraire avec Substring ou les plages

CSHARP
string code = "TR-2026-001";
string country = code[..2];
string number = code[3..];
Console.WriteLine($"{country} / {number}");

Les plages modernes rendent certaines opérations plus lisibles. Vérifiez tout de même la longueur d’une donnée externe avant de l’indexer.

Construire avec Join

CSHARP
string[] technologies = { "C#", ".NET", "SQL" };
string result = string.Join(" · ", technologies);
Console.WriteLine(result);
RÉSULTAT
C# · .NET · SQL

Join est généralement préférable à une boucle qui concatène manuellement des séparateurs.

Interpolation et formatage

CSHARP
string project = "API";
decimal price = 12500m;
Console.WriteLine($"Projet : {project} | Budget : {price:N2} TL");

L’interpolation améliore la lisibilité. Les formats numériques et de date dépendent de la culture courante ; pour une sortie destinée à une API ou à un fichier technique, choisissez explicitement une culture stable.

Vérifier les valeurs vides

CSHARP
string? input = Console.ReadLine();
if (string.IsNullOrWhiteSpace(input))
{
    Console.WriteLine("Une valeur est requise.");
}

IsNullOrWhiteSpace couvre null, chaîne vide et espaces. C’est souvent le premier contrôle avant une transformation.

StringBuilder pour de nombreuses concaténations

Les chaînes étant immuables, une boucle avec de très nombreuses concaténations peut créer beaucoup d’objets. StringBuilder convient lorsque vous construisez progressivement un texte volumineux.

CSHARP
using System.Text;

var builder = new StringBuilder();
for (int i = 1; i <= 3; i++)
{
    builder.AppendLine($"Ligne {i}");
}
Console.WriteLine(builder.ToString());

Bonnes pratiques

  • Validez les données externes avant les index et découpes.
  • Choisissez explicitement StringComparison pour les comparaisons importantes.
  • N’utilisez pas une conversion de casse comme unique règle de sécurité.
  • Préférez les méthodes lisibles aux expressions régulières inutilement complexes.
  • Ajoutez des tests avec chaînes nulles, vides, Unicode et très longues.

Conclusion

Trim, Contains, Replace, Split, Join, l’interpolation et StringBuilder couvrent une grande partie du travail quotidien sur les chaînes C#. Comprendre l’immutabilité, la culture et la comparaison permet d’éviter les erreurs subtiles. Testez chaque transformation avec les données réelles que votre application doit accepter.