Formater une chaîne avec des espaces fixes en C#

Syed Hassan Sabeeh Kazmi 12 octobre 2023
  1. Utilisez la méthode String.Format pour formater une chaîne avec des espaces fixes en C#
  2. Utilisez $ - string interpolation pour formater une chaîne avec des espaces fixes en C#
  3. Utilisez String.PadLeft et String.PadRight pour formater une chaîne avec des espaces fixes en C#
Formater une chaîne avec des espaces fixes en C#

Dans ce didacticiel, vous apprendrez comment C# vous donne la liberté de formater une chaîne avec un espace fixe à l’aide de différentes méthodes. L’environnement .NET propose des méthodes statiques telles que String.Format pour aligner les chaînes avec des espaces fixes.

Utilisez la méthode String.Format pour formater une chaîne avec des espaces fixes en C#

Cette méthode convertit la valeur des objets, des variables ou des expressions en chaînes et les insère dans une autre chaîne en fonction des formats spécifiés. Le String.Format commence par une chaîne de format suivie d’un ou plusieurs objets.

La syntaxe {int, int} représente une chaîne d’insertion et peut définir la largeur de la chaîne insérée dans la chaîne de résultat. Par exemple, la syntaxe {0, 6} représente une chaîne de 6 caractères.

En C#, les chaînes sont par défaut alignées à droite dans leur champ et font face à la largeur du champ avec un signe négatif {0, -6} pour les aligner à gauche. Les crochets de cette méthode indiquent des éléments facultatifs et une chaîne de format a la syntaxe {index[,alignment][:formatString]}.

L’index des chaînes de format correspond à un objet appartenant à la liste d’arguments de la méthode, et cet index peut être traité séquentiellement depuis le début de la chaîne.

Code:

using System;

public class formatString {
  public static void Main(string[] args) {
    string prtTxtAlg = "I like burgundy.";

    string txtFmtRight = String.Format("{0,30}", prtTxtAlg);

    string txtFmtCenter = String.Format(
        "{0,-30}",
        String.Format("{0," + ((30 + prtTxtAlg.Length) / 2).ToString() + "}", prtTxtAlg));

    string txtFmtLeft = String.Format("{0,-30}", prtTxtAlg);

    Console.WriteLine(txtFmtRight);
    Console.WriteLine(txtFmtCenter);
    Console.WriteLine(txtFmtLeft);
  }
}

Production:

           I like burgundy.
     I like burgundy.
I like burgundy.

Utilisez $ - string interpolation pour formater une chaîne avec des espaces fixes en C#

Le $ s’identifie comme une chaîne interpolée contenant des expressions d’interpolation. Lorsque le $ - string est résolu en une chaîne de résultat, il force les éléments avec des expressions d’interpolation à être remplacés par les représentations sous forme de chaîne des résultats de l’expression.

La syntaxe {<interpolationExpression>[,<alignment>][:<formatString>]} représente une chaîne et sa structure représente son expression d’interpolation. Il y a un élément principal de la $ - string interpolation qui est <interpolationExpression> et deux éléments secondaires et facultatifs qui sont entre crochets ; <alignment> et <formatString>.

Le interpolationExpression produit un résultat à formater, le alignment représente une valeur positive ou négative pour aligner la chaîne à droite ou à gauche, et le formatString est supporté par le type du résultat de l’expression.

En général, un appel à une méthode prenant en charge la mise en forme composite est requis, mais vous pouvez utiliser n’importe quelle chaîne à l’aide de cette méthode sans nécessiter la prise en charge d’une méthode pour la mise en forme composite. C# facilite la lecture et le codage des chaînes interpolées en introduisant l’expression dans l’expression interpolée à insérer dans une chaîne plutôt que dans une liste d’arguments.

Outre la plus grande compréhensibilité et performance, la méthode $ - string interpolation peut remplacer non seulement les appels aux méthodes de format composite, mais peut être utilisée dans les opérations de concaténation de chaînes. Les opérations de concaténation qu’il prend en charge peuvent produire un code C# plus précis et plus lisible.

Code:

using System;

public class formatString {
  public static void Main(string[] args) {
    string value = "I like burgundy.";

    string txtRight = $"{value,25}";
    string txtCenter = $"{value,20}";
    string txtLeft = $"{value,-10}";

    Console.WriteLine(txtRight);
    Console.WriteLine(txtCenter);
    Console.WriteLine(txtLeft);
  }
}

Production:

         I like burgundy.
    I like burgundy.
I like burgundy.

Utilisez String.PadLeft et String.PadRight pour formater une chaîne avec des espaces fixes en C#

La méthode String.PadLeft complète une chaîne avec des caractères de début jusqu’à une longueur totale spécifiée. La méthode String.PadRight complète une chaîne avec des caractères de fin jusqu’à une longueur totale spécifiée.

Vous pouvez prendre le concept de ces deux méthodes String et créer une nouvelle méthode String.PadCenter que vous trouverez dans le code C# suivant. Le caractère de remplissage dans les méthodes String peut être un espace ou un caractère spécifié, et la chaîne résultante semble être alignée à droite ou à gauche.

En C#, PadLeft() et PadRight() peuvent aligner à droite ou à gauche la chaîne en les remplissant avec des espaces ou des caractères spécifiés à gauche ou à droite pour une longueur totale spécifiée.

Code:

using System;

public class formatString {
  public static void Main(string[] args) {
    string txt = "I like burgundy.";

    Console.WriteLine(txt.PadLeft(20, ' '));

    // to pad_center the string using custom C# code
    Console.WriteLine(txtCenter.PadCenter(txt, 20, ' '));

    Console.WriteLine(txt.PadRight(20, ' '));
  }
}

// custom code to create `PadCenter` String method in C#
public static class txtCenter {
  public static string PadCenter(this string txt, int width, char symb) {
    if (txt == null || width <= txt.Length)
      return txt;

    int padding = width - txt.Length;
    return txt.PadLeft(txt.Length + padding / 2, symb).PadRight(width, symb);
  }
}

Production:

    I like burgundy.
  I like burgundy.
I like burgundy.

Dans ce tutoriel, vous avez appris tout ce qu’il y a à savoir sur le formatage d’une chaîne avec des espaces fixes ou le remplissage en C#.

Syed Hassan Sabeeh Kazmi avatar Syed Hassan Sabeeh Kazmi avatar

Hassan is a Software Engineer with a well-developed set of programming skills. He uses his knowledge and writing capabilities to produce interesting-to-read technical articles.

GitHub

Article connexe - Csharp String