Exercice - Découvrir le remplissage et l’alignement
- 12 minutes
La string.Format() méthode est utilisée pour effectuer une mise en forme composite telle que dans l’exemple :
string first = "Hello";
string second = "World";
string result = string.Format("{0} {1}!", first, second);
Console.WriteLine(result);
Il peut sembler un peu étrange qu’un mot clé qui représente un type de données possède des méthodes que vous pouvez appeler de la même façon que vous appelez des méthodes sur la Console classe. Le fait est qu’il existe de nombreuses méthodes similaires sur le string type de données et toute chaîne littérale ou variable de type chaîne.
Voici une brève liste de catégories de ces méthodes intégrées pour vous permettre d’avoir une idée de ce qui est possible.
- Méthodes qui ajoutent des espaces vides à des fins de mise en forme (
PadLeft(),PadRight()) - Méthodes qui comparent deux chaînes ou facilitent la comparaison (
Trim(),TrimStart(),TrimEnd(),GetHashcode()laLengthpropriété) - Méthodes qui vous aident à déterminer ce qui se trouve à l’intérieur d’une chaîne, ou même à récupérer une partie de la chaîne (
Contains(), ,StartsWith()EndsWith(),Substring()) - Méthodes qui modifient le contenu de la chaîne en remplaçant, en insérant ou en supprimant des parties (
Replace(), ,Insert()Remove()) - Méthodes qui transforment une chaîne en tableau de chaînes ou de caractères (
Split(),ToCharArray())
Mise en forme des chaînes en ajoutant des espaces blancs avant ou après
La PadLeft() méthode ajoute des espaces vides au côté gauche de la chaîne afin que le nombre total de caractères soit égal à l’argument que vous l’envoyez. Dans ce cas, vous souhaitez que la longueur totale de la chaîne soit de 12 caractères.
Supprimez ou utilisez l’opérateur de commentaire de ligne
//pour commenter tout le code des étapes précédentes.Mettez à jour votre code dans l’Éditeur Visual Studio Code comme suit :
string input = "Pad this"; Console.WriteLine(input.PadLeft(12));Dans le menu Fichier Visual Studio Code, sélectionnez Enregistrer. Enregistrez le fichier Program.cs avant de générer ou d’exécuter le code.
Dans le panneau EXPLORATEUR, pour ouvrir un terminal à l’emplacement de votre dossier TestProject, cliquez avec le bouton droit sur TestProject, puis sélectionnez Ouvrir dans le terminal intégré. Un panneau Terminal doit s’ouvrir et doit inclure une invite de commandes indiquant que le Terminal est ouvert à l’emplacement de votre dossier TestProject.
À l’invite de commandes terminal, pour exécuter votre code, tapez dotnet run , puis appuyez sur Entrée.
Remarque
Si vous voyez le message « Impossible de trouver un projet à exécuter », vérifiez que l’invite de commandes du Terminal affiche l’emplacement attendu du dossier TestProject. Par exemple :
C:\Users\someuser\Desktop\csharpprojects\TestProject>Lorsque vous exécutez le code, vous observez que quatre caractères sont ajoutés au début de la chaîne, portant la longueur totale à 12 caractères.
Pad thisPour ajouter de l’espace ou des caractères à droite de votre chaîne, utilisez plutôt la méthode
PadRight(). 1. Mettez à jour votre code dans l’Éditeur Visual Studio Code comme suit :Console.WriteLine(input.PadRight(12));Enregistrez votre fichier de code, puis utilisez Visual Studio Code pour exécuter votre code. Vous n’observerez aucun caractère ajouté à la fin de la chaîne, mais ils sont là.
Qu’est-ce qu’une méthode surchargée ?
En C#, une méthode surchargée est une autre version d’une méthode avec des arguments différents ou supplémentaires qui modifient légèrement les fonctionnalités de la méthode, comme c’est le cas avec la version surchargée de la PadLeft() méthode.
Vous pouvez également appeler une deuxième version surchargée de la méthode et passer le caractère que vous souhaitez utiliser au lieu d’un espace. Dans le cas présent, vous remplissez l’espace supplémentaire avec le tiret.
Supprimez ou utilisez l’opérateur
//de commentaire de ligne pour commenter tout le code de l’étape précédente.Mettez à jour votre code dans l’Éditeur Visual Studio Code comme suit :
Console.WriteLine(input.PadLeft(12, '-')); Console.WriteLine(input.PadRight(12, '-'));Enregistrez votre fichier de code, puis utilisez Visual Studio Code pour exécuter votre code. Quatre tirets doivent être ajoutés à gauche de la chaîne qui comporte 12 caractères.
----Pad this Pad this----
À présent, appliquez cette nouvelle connaissance découverte à un autre scénario réel.
Utilisation de chaînes rembourrées
Supposons que vous travaillez pour une entreprise de traitement des paiements qui prend toujours en charge les systèmes mainframe hérités. Souvent, ces systèmes nécessitent que les données soient entrées dans des colonnes spécifiques. Par exemple, stockez l’ID de paiement dans les colonnes 1 à 6, le nom du bénéficiaire dans les colonnes 7 à 30 et le montant du paiement dans les colonnes 31 à 40. De plus, il est important que le montant du paiement (Payment Amount) soit aligné à droite.
Vous êtes invité à créer une application qui convertit les données dans le système de gestion de base de données relationnelle au format de fichier hérité. Pour vous assurer que l’intégration fonctionne correctement, la première étape consiste à confirmer le format de fichier en donnant aux gestionnaires de maintenance du système hérité un exemple de sortie. Plus tard, vous développez ce travail pour envoyer des centaines ou des milliers de paiements pour traitement via un fichier texte ASCII.
Ajouter l’ID de paiement à la sortie
Pour commencer, imprimez l’ID de paiement dans les six premières colonnes. Vous choisissez des données de paiement au hasard qui doivent être adéquates pour les besoins prévus.
Supprimez ou utilisez l’opérateur
//de commentaire de ligne pour commenter tout le code de l’étape précédente.Mettez à jour votre code dans l’Éditeur Visual Studio Code comme suit :
string paymentId = "769C"; var formattedLine = paymentId.PadRight(6); Console.WriteLine(formattedLine);Réutilisez la
formattedLinevariable pour générer la chaîne de sortie.Enregistrez votre fichier de code, puis utilisez Visual Studio Code pour exécuter votre code. La sortie suivante doit s’afficher :
769C
Il existe deux espaces vides à droite qui ne sont pas visibles. Vous allez confirmer qu’ils existent à l’étape suivante.
Ajouter le nom du bénéficiaire au résultat
Vous allez ensuite ajouter un nom de bénéficiaire (Payee Name) fictif, en le remplissant de manière appropriée.
Mettez à jour votre code dans l’Éditeur Visual Studio Code comme suit :
string paymentId = "769C"; string payeeName = "Mr. Stephen Ortega"; var formattedLine = paymentId.PadRight(6); formattedLine += payeeName.PadRight(24); Console.WriteLine(formattedLine);L’opérateur
+=effectue une concaténation de chaîne, en prenant la valeur précédente de la variableformattedLineet en y ajoutant la nouvelle valeur. Il s’agit d’un équivalent raccourci de l’exemple de code suivant :formattedLine = formattedLine + payeeName.PadRight(24);Enregistrez votre fichier de code, puis utilisez Visual Studio Code pour exécuter votre code. La sortie suivante doit s’afficher :
769C Mr. Stephen Ortega
Là encore, il existe quelques espaces vides après le nom du bénéficiaire. En outre, il existe deux espaces vides après l’ID de paiement de l’étape 1.
Ajouter le montant du paiement à la sortie
Ensuite, ajoutez un montant de paiement fictif et assurez-vous d'utiliser PadLeft() pour aligner la sortie à droite.
Mettez à jour votre code dans l’Éditeur Visual Studio Code comme suit :
string paymentId = "769C"; string payeeName = "Mr. Stephen Ortega"; string paymentAmount = "$5,000.00"; var formattedLine = paymentId.PadRight(6); formattedLine += payeeName.PadRight(24); formattedLine += paymentAmount.PadLeft(10); Console.WriteLine(formattedLine);Enregistrez votre fichier de code, puis utilisez Visual Studio Code pour exécuter votre code. La sortie suivante doit s’afficher :
769C Mr. Stephen Ortega $5,000.00
Cette sortie est semble-t-il assez proche de ce que les chargés de maintenance du système hérité recherchaient.
Ajouter une ligne de nombres au-dessus de la sortie pour confirmer plus facilement le résultat
Étant donné qu’il est difficile de compter les colonnes exactes où chaque élément de données apparaît, vous ajoutez une ligne directement au-dessus de la sortie qui vous aide à compter les colonnes.
Console.WriteLine("1234567890123456789012345678901234567890");
Mettez à jour votre code dans l’Éditeur Visual Studio Code comme suit :
string paymentId = "769C"; string payeeName = "Mr. Stephen Ortega"; string paymentAmount = "$5,000.00"; var formattedLine = paymentId.PadRight(6); formattedLine += payeeName.PadRight(24); formattedLine += paymentAmount.PadLeft(10); Console.WriteLine("1234567890123456789012345678901234567890"); Console.WriteLine(formattedLine);Enregistrez votre fichier de code, puis utilisez Visual Studio Code pour exécuter votre code. Vous devez voir la sortie suivante, que vous pouvez envoyer aux maintenances du système hérité pour confirmer que la nouvelle intégration fonctionne correctement :
1234567890123456789012345678901234567890 769C Mr. Stephen Ortega $5,000.00
Le résultat est correct !
Récapitulatif
Il y a quelques points importants à retenir de cette unité.
- Le
stringtype de données, les chaînes littérales et les variables de chaîne de type implémentent chacune de nombreuses méthodes d’assistance pour mettre en forme, modifier et effectuer d’autres opérations sur des chaînes. - Les
PadLeft()méthodes etPadRight()ajoutent de l’espace blanc (ou éventuellement, un autre caractère) à la longueur totale d’une chaîne. - Utiliser
PadLeft()pour aligner une chaîne à droite. - Certaines méthodes sont surchargées, ce qui signifie qu’elles ont plusieurs versions de la méthode avec différents arguments qui affectent leurs fonctionnalités.
- L’opérateur
+=concatène une nouvelle chaîne à droite vers la chaîne existante à gauche.