Übung: Erkunden von Auffüllung und Ausrichtung
- 12 Minuten
Die string.Format()-Methode wird verwendet, um zusammengesetzte Formatierungen wie im Beispiel anzuwenden:
string first = "Hello";
string second = "World";
string result = string.Format("{0} {1}!", first, second);
Console.WriteLine(result);
Es war vielleicht etwas ungewöhnlich, dass das Schlüsselwort, das einen Datentyp darstellt, über Methoden verfügt, die Sie genauso wie die Methoden für die Console-Klasse aufrufen können. Fakt ist, dass es viele ähnliche Methoden für den string-Datentyp sowie eine beliebige Literalzeichenfolge oder Variable vom Typ „string“ gibt.
Im Folgenden finden Sie eine kurze Liste der Kategorien dieser integrierten Methoden, damit Sie eine Vorstellung von den Möglichkeiten erhalten:
- Methoden, die Leerzeichen für Formatierungszwecke hinzufügen (
PadLeft(),PadRight()) - Methoden, die zwei Zeichenfolgen vergleichen oder den Vergleich erleichtern (
Trim(),TrimStart(),TrimEnd(),GetHashcode(), theLength, die Eigenschaft Length) - Methoden, mit denen Sie bestimmen können, was sich in einer Zeichenfolge befindet, oder mit denen Sie sogar nur einen Teil der Zeichenfolge abrufen können (
Contains(),StartsWith(),EndsWith(),Substring()) - Methoden, die den Inhalt der Zeichenfolge ändern, indem Teile ersetzt, eingefügt oder entfernt werden (
Replace(),Insert(),Remove()) - Methoden, die eine Zeichenfolge in ein Zeichenfolgenarray oder in eine Zeichenfolge umwandeln (
Split(),ToCharArray())
Formatieren von Zeichenfolgen durch Hinzufügen von Leerzeichen davor oder danach
Die PadLeft()-Methode fügt der linken Seite der Zeichenfolge Leerzeichen hinzu, sodass die Gesamtzahl der Zeichen dem Argument entspricht, das Sie senden. In diesem Fall möchten Sie, dass die Gesamtlänge der Zeichenfolge 12 Zeichen beträgt.
Löschen oder verwenden Sie den Operator für Zeilenkommentare
//, um den gesamten Code aus den vorherigen Übungen auszukommentieren.Aktualisieren Sie Ihren Code im Visual Studio Code-Editor wie folgt:
string input = "Pad this"; Console.WriteLine(input.PadLeft(12));Wählen Sie im Visual Studio Code-Menü Datei die Option Speichern aus. Speichern Sie die Datei „Program.cs“ vor dem Ausführen des Codes.
Klicken Sie im Panel „Explorer“ mit der rechten Maustaste auf TestProject, und klicken Sie dann auf In integriertem Terminal öffnen, um ein Terminal am Speicherort des TestProject-Ordners zu öffnen. Ein Terminalbereich sollte geöffnet werden und sollte eine Eingabeaufforderung enthalten, die anzeigt, dass das Terminal für den Ordner "TestProject" geöffnet ist.
Um Ihren Code auszuführen, geben Sie an der Terminal-Eingabeaufforderung dotnet run ein und drücken Sie dann die Eingabetaste.
Hinweis
Wenn die Meldung „Es wurde kein ausführbares Projekt gefunden“ angezeigt wird, stellen Sie sicher, dass in der Eingabeaufforderung des Terminals der erwartete Speicherort des Ordners „TestProject“ angezeigt wird. Beispiel:
C:\Users\someuser\Desktop\csharpprojects\TestProject>Wenn Sie den Code ausführen, sehen Sie, dass vier Zeichen links von der Zeichenfolge eingefügt werden und die Länge auf 12 Zeichen erhöht wird.
Pad thisWenn Sie Leerzeichen oder Zeichen rechts an Ihre Zeichenfolge anfügen möchten, verwenden Sie die
PadRight()-Methode. 1. Aktualisieren Sie Ihren Code im Visual Studio Code-Editor wie folgt:Console.WriteLine(input.PadRight(12));Speichern Sie Ihre Codedatei, und führen Sie Ihren Code dann mit Visual Studio Code aus. Es werden keine Zeichen am Ende der Zeichenfolge hinzugefügt, sie sind jedoch vorhanden.
Was ist eine überladene Methode?
In C# stellt eine überladene Methode eine weitere Version einer Methode mit unterschiedlichen oder zusätzlichen Argumenten dar, die die Funktionalität der Methode leicht verändern. Dies ist auch der Fall bei der überladenen Version der PadLeft()-Methode.
Sie können auch eine zweite überladene Version der Methode aufrufen und an ein beliebiges Zeichen übergeben, das Sie anstelle eines Leerzeichens verwenden möchten. In diesem Fall füllen Sie den zusätzlichen Platz mit dem Gedankenstrich auf.
Löschen oder verwenden Sie den Operator für Zeilenkommentare
//, um den gesamten Code aus dem vorherigen Schritt auszukommentieren.Aktualisieren Sie Ihren Code im Visual Studio Code-Editor wie folgt:
Console.WriteLine(input.PadLeft(12, '-')); Console.WriteLine(input.PadRight(12, '-'));Speichern Sie Ihre Codedatei, und führen Sie Ihren Code dann mit Visual Studio Code aus. Es sollten vier Bindestriche vor der linken Seite der 12 Zeichen langen Zeichenfolge stehen.
----Pad this Pad this----
Wenden Sie also diese neue Erkenntnis nun auch auf andere reale Szenarios an.
Arbeiten mit aufgefüllten Zeichenfolgen
Angenommen, Sie arbeiten für ein Unternehmen für Zahlungsabwicklungen, das noch immer Legacymainframesysteme unterstützt. Oft ist bei solchen Systemen der Fall, dass Daten in bestimmte Spalten eingegeben werden müssen. Beispielsweise soll die Zahlungs-ID in den Spalten 1 bis 6, der Name des Zahlungsempfängers in den Spalten 7 bis 30 und der Zahlungsbetrag in den Spalten 31 bis 40 gespeichert werden. Was noch wichtig ist: Der Zahlungsbetrag muss rechtsbündig sein.
Sie werden nun gebeten, eine Anwendung zu erstellen, die Daten in dem Managementsystem für relationale Datenbanken in das veraltete Dateiformat umwandelt. Um sicherzustellen, dass die Integration einwandfrei funktioniert, besteht der erste Schritt darin, das Dateiformat zu bestätigen, indem der Betreiber des Legacysystems ein Beispiel der Ausgabe erhält. Später bauen Sie auf diese Arbeit auf, um Hunderttausende Zahlungen zu senden, die über die ASCII-Textdatei verarbeitet werden sollen.
Hinzufügen der Zahlungs-ID zur Ausgabe
Geben Sie in den ersten sechs Spalten die Zahlungs-ID aus. Sie wählen einige zufällige Zahlungsdaten aus, die für Ihre Zwecke geeignet zu sein scheinen.
Löschen oder verwenden Sie den Operator für Zeilenkommentare
//, um den gesamten Code aus dem vorherigen Schritt auszukommentieren.Aktualisieren Sie Ihren Code im Visual Studio Code-Editor wie folgt:
string paymentId = "769C"; var formattedLine = paymentId.PadRight(6); Console.WriteLine(formattedLine);Verwenden Sie die
formattedLine-Variable erneut, um die Ausgabezeichenfolge zu erstellen.Speichern Sie Ihre Codedatei, und führen Sie Ihren Code dann mit Visual Studio Code aus. Die folgende Ausgabe sollte angezeigt werden:
769C
Es gibt zwei Leerräume rechts, die nicht sichtbar sind. Sie bestätigen im nächsten Schritt, dass sie existieren.
Hinzufügen des Zahlungsempfängernamens zur Ausgabe
Als nächstes fügen Sie einen fiktiven Zahlungsempfängernamen hinzu und füllen ihn ordnungsgemäß aus.
Aktualisieren Sie Ihren Code im Visual Studio Code-Editor wie folgt:
string paymentId = "769C"; string payeeName = "Mr. Stephen Ortega"; var formattedLine = paymentId.PadRight(6); formattedLine += payeeName.PadRight(24); Console.WriteLine(formattedLine);Der
+=-Operator führt eine Zeichenfolgenverkettung durch, wobei der vorherige Wert der VariablenformattedLineverwendet wird und der neue Wert hinzugefügt wird. Es handelt sich um eine verkürzte Entsprechung des folgenden Codebeispiels:formattedLine = formattedLine + payeeName.PadRight(24);Speichern Sie Ihre Codedatei, und führen Sie Ihren Code dann mit Visual Studio Code aus. Die folgende Ausgabe sollte angezeigt werden:
769C Mr. Stephen Ortega
Hier sind wieder einige Leerzeichen nach dem Namen des Zahlungsempfängers zu sehen. Außerdem gibt es zwei Leerräume nach der Zahlungs-ID aus Schritt 1.
Fügen Sie den Zahlungsbetrag zur Ausgabe hinzu
Als Nächstes fügen Sie einen fiktiven Zahlungsbetrag hinzu und verwenden PadLeft(), um die Ausgabe rechtsbündig anzuordnen.
Aktualisieren Sie Ihren Code im Visual Studio Code-Editor wie folgt:
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);Speichern Sie Ihre Codedatei, und führen Sie Ihren Code dann mit Visual Studio Code aus. Die folgende Ausgabe sollte angezeigt werden:
769C Mr. Stephen Ortega $5,000.00
Die Ausgabe kommt dem nahe, was laut Ihrem Verständnis die Betreiber des Legacysystems gesucht haben.
Hinzufügen einer Zeile mit Zahlen über der Ausgabe für eine einfachere Bestätigung des Ergebnisses
Da es schwierig ist, die genaue Anzahl der Spalten zu ermitteln, in denen die einzelnen Datenelemente erscheinen, fügen Sie direkt über der Ausgabe eine Zeile hinzu, die Ihnen beim Zählen der Spalten hilft.
Console.WriteLine("1234567890123456789012345678901234567890");
Aktualisieren Sie Ihren Code im Visual Studio Code-Editor wie folgt:
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);Speichern Sie Ihre Codedatei, und führen Sie Ihren Code dann mit Visual Studio Code aus. Sie sollten die folgende Ausgabe sehen, die Sie an die Betreiber des Legacysystems senden können, um zu bestätigen, dass die neue Integration ordnungsgemäß funktioniert:
1234567890123456789012345678901234567890 769C Mr. Stephen Ortega $5,000.00
Gratulation, das Programm funktioniert!
Zusammenfassung
Aus dieser Einheit können wir einige wichtige Punkte mitnehmen.
- Der
string-Datentyp, Literalzeichenfolgen und Variablen vom Typ „string“ implementieren jeweils viele Hilfsmethoden zum Formatieren, Ändern und Ausführen weiterer Operationen an Zeichenfolgen. - Die Methoden
PadLeft()undPadRight()fügen einen Leerraum (oder optional ein anderes Zeichen) zur Gesamtlänge einer Zeichenfolge hinzu. -
PadLeft()wird verwendet, um eine Zeichenfolge rechtsbündig auszurichten. - Einige Methoden sind überladen, was bedeutet, dass sie über mehrere Versionen der Methode mit unterschiedlichen Argumenten verfügen, die deren Funktionalität beeinflussen.
- Der
+=-Operator verkettet eine neue Zeichenfolge rechts mit einer vorhandenen Zeichenfolge auf der linken Seite.