Formatieren einer Zeichenfolge mit festen Leerzeichen in C#

Syed Hassan Sabeeh Kazmi 12 Oktober 2023
  1. Verwenden Sie die Methode String.Format, um einen String mit festen Leerzeichen in C# zu formatieren
  2. Verwenden Sie $ – Zeichenfolgeninterpolation, um eine Zeichenfolge mit festen Leerzeichen in C# zu formatieren
  3. Verwenden Sie String.PadLeft & String.PadRight, um einen String mit festen Leerzeichen in C# zu formatieren
Formatieren einer Zeichenfolge mit festen Leerzeichen in C#

In diesem Tutorial erfahren Sie, wie C# Ihnen die Freiheit gibt, eine Zeichenfolge mit festen Leerzeichen mit verschiedenen Methoden zu formatieren. Die .NET-Umgebung verfügt über statische Methoden wie String.Format, um Strings an festen Leerzeichen auszurichten.

Verwenden Sie die Methode String.Format, um einen String mit festen Leerzeichen in C# zu formatieren

Diese Methode konvertiert den Wert von Objekten, Variablen oder Ausdrücken in Zeichenfolgen und fügt sie basierend auf angegebenen Formaten in eine andere Zeichenfolge ein. Das String.Format beginnt mit einem Formatstring gefolgt von einem oder mehreren Objekten.

Die Syntax {int, int} stellt eine Einfügezeichenfolge dar und kann die Breite der Zeichenfolge definieren, die in die Ergebniszeichenfolge eingefügt wird. Beispielsweise repräsentiert die Syntax {0, 6} eine Zeichenfolge mit 6 Zeichen.

In C# sind Strings innerhalb ihres Felds standardmäßig rechtsbündig ausgerichtet und stellen der Feldbreite ein negatives Vorzeichen {0, -6} voran, um sie linksbündig auszurichten. Die Klammern dieser Methode bezeichnen optionale Elemente, und ein Formatstring hat die Syntax {index[,alignment][:formatString]}.

Der Index der Formatstrings entspricht einem Objekt, das zur Argumentliste der Methode gehört, und dieser Index kann sequentiell ab dem Anfang des Strings verarbeitet werden.

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);
  }
}

Ausgabe:

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

Verwenden Sie $ – Zeichenfolgeninterpolation, um eine Zeichenfolge mit festen Leerzeichen in C# zu formatieren

Das $ identifiziert sich als interpolierter String, der Interpolationsausdrücke enthält. Wenn die $ - Zeichenfolge in eine Ergebniszeichenfolge aufgelöst wird, werden die Elemente mit Interpolationsausdrücken durch die Zeichenfolgendarstellungen der Ausdrucksergebnisse ersetzt.

Die Syntax {<interpolationExpression>[,<alignment>][:<formatString>]} stellt eine Zeichenfolge dar und ihre Struktur stellt ihren Interpolationsausdruck dar. Es gibt ein primäres Element der $ - Interpolationszeichenfolge, nämlich <interpolationExpression>, und zwei sekundäre und optionale Elemente, die in eckigen Klammern stehen; <alignment> und <formatString>.

interpolationExpression erzeugt ein zu formatierendes Ergebnis, alignment stellt einen positiven oder negativen Wert dar, um die Zeichenfolge rechts oder links auszurichten, und formatString wird vom Typ des Ausdrucksergebnisses unterstützt.

Im Allgemeinen ist ein Aufruf einer Methode erforderlich, die die zusammengesetzte Formatierung unterstützt, aber Sie können mit Hilfe dieser Methode jeden beliebigen String verwenden, ohne dass eine Methodenunterstützung für die zusammengesetzte Formatierung erforderlich ist. C# erleichtert das Lesen und Codieren der interpolierten Zeichenfolgen, indem der Ausdruck in den interpolierten Ausdruck eingefügt wird, um ihn in eine Zeichenfolge statt in eine Argumentliste einzufügen.

Neben der besseren Verständlichkeit und Leistung kann die Methode $ - string interpolation nicht nur Aufrufe von Composite-Format-Methoden ersetzen, sondern auch in String-Verkettungsoperationen verwendet werden. Die von ihm unterstützten Verkettungsvorgänge können präziseren und lesbareren C#-Code erzeugen.

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);
  }
}

Ausgabe:

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

Verwenden Sie String.PadLeft & String.PadRight, um einen String mit festen Leerzeichen in C# zu formatieren

Die Methode String.PadLeft füllt einen String mit führenden Zeichen auf eine vorgegebene Gesamtlänge auf. Die Methode String.PadRight füllt einen String mit nachgestellten Zeichen auf eine vorgegebene Gesamtlänge auf.

Sie können das Konzept dieser beiden String-Methoden übernehmen und eine neue Methode String.PadCenter erstellen, die Sie im folgenden C#-Code finden. Das Füllzeichen in String-Methoden kann ein Leerzeichen oder ein bestimmtes Zeichen sein, und der resultierende String erscheint entweder rechtsbündig oder linksbündig.

In C# können PadLeft() und PadRight() den String rechtsbündig oder linksbündig ausrichten, indem sie mit Leerzeichen oder bestimmten Zeichen links oder rechts für eine bestimmte Gesamtlänge aufgefüllt werden.

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);
  }
}

Ausgabe:

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

In diesem Tutorial haben Sie alles gelernt, was Sie über das Formatieren einer Zeichenfolge mit festen Leerzeichen oder Padding in C# wissen müssen.

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

Verwandter Artikel - Csharp String