Oefening: opvulling en uitlijning ontdekken
- 12 minuten
De string.Format() methode wordt gebruikt om samengestelde opmaak uit te voeren, zoals in het voorbeeld:
string first = "Hello";
string second = "World";
string result = string.Format("{0} {1}!", first, second);
Console.WriteLine(result);
Het lijkt misschien een beetje vreemd dat een trefwoord dat een gegevenstype vertegenwoordigt methoden heeft die u op dezelfde manier kunt aanroepen als methoden in de Console klasse. Het feit is dat er veel vergelijkbare methoden zijn voor het string gegevenstype en elke letterlijke tekenreeks of variabele van het typetekenreeks.
Hier volgt een korte lijst met categorieën van deze ingebouwde methoden, zodat u een idee krijgt van wat er mogelijk is.
- Methoden waarmee spaties worden toegevoegd voor opmaakdoeleinden (
PadLeft(),PadRight()) - Methoden die twee tekenreeksen vergelijken of vergelijking vergemakkelijken (
Trim(),TrimStart(),TrimEnd(),GetHashcode()deLengtheigenschap) - Methoden waarmee u kunt bepalen wat er in een tekenreeks zit of zelfs een deel van de tekenreeks (
Contains(),StartsWith(),EndsWith(), )Substring()ophalen - Methoden die de inhoud van de tekenreeks wijzigen door delen te vervangen, in te voegen of te verwijderen (
Replace(),Insert(),Remove()) - Methoden waarmee een tekenreeks wordt omgezet in een matrix met tekenreeksen of tekens (
Split(),ToCharArray())
Tekenreeksen opmaken door witruimte toe te voegen vóór of na
Met PadLeft() de methode worden spaties aan de linkerkant van de tekenreeks toegevoegd, zodat het totale aantal tekens gelijk is aan het argument dat u verzendt. In dit geval wilt u dat de totale lengte van de tekenreeks 12 tekens is.
Verwijder of gebruik de operator
//voor regelopmerking om alle code uit de vorige oefeningen als commentaar te geven.Werk uw code als volgt bij in de Visual Studio Code-editor:
string input = "Pad this"; Console.WriteLine(input.PadLeft(12));Selecteer Opslaan in het menu Visual Studio Code File. Sla het Program.cs bestand op voordat u de code bouwt of uitvoert.
Klik in het deelvenster EXPLORER om een Terminal te openen op de locatie van de map TestProject met de rechtermuisknop op TestProject en selecteer Vervolgens Openen in geïntegreerde terminal. Er moet een terminalvenster worden geopend en moet een opdrachtprompt bevatten die laat zien dat de Terminal is geopend voor de locatie van de testproject-map.
Typ dotnet-run bij de Terminal-opdrachtprompt en druk op Enter om uw code uit te voeren.
Opmerking
Als er een bericht wordt weergegeven met de tekst 'Kan een project niet vinden om uit te voeren', controleert u of in de Terminal-opdrachtprompt de verwachte locatie van de testprojectmap wordt weergegeven. Bijvoorbeeld:
C:\Users\someuser\Desktop\csharpprojects\TestProject>Wanneer u de code uitvoert, ziet u vier tekens die aan de linkerkant van de tekenreeks zijn voorafgegaan door de lengte van 12 tekens.
Pad thisAls u spaties of tekens aan de rechterkant van de tekenreeks wilt toevoegen, gebruikt u in plaats daarvan de
PadRight()methode. 1. Werk uw code als volgt bij in de Visual Studio Code-editor:Console.WriteLine(input.PadRight(12));Sla uw codebestand op en gebruik Visual Studio Code om uw code uit te voeren. U ziet geen tekens die zijn toegevoegd aan het einde van de tekenreeks, maar ze zijn er wel.
Wat is een overloaded methode?
In C# is een overbelaste methode een andere versie van een methode met verschillende of extra argumenten die de functionaliteit van de methode enigszins wijzigen, zoals het geval is met de overbelaste versie van de PadLeft() methode.
U kunt ook een tweede overbelaste versie van de methode aanroepen en elk teken doorgeven dat u wilt gebruiken in plaats van een spatie. In dit geval vult u de extra ruimte met het streepjeteken.
Verwijder of gebruik de operator
//voor regelopmerking om alle code uit de vorige stap uit de commentaar te verwijderen of te gebruiken.Werk uw code als volgt bij in de Visual Studio Code-editor:
Console.WriteLine(input.PadLeft(12, '-')); Console.WriteLine(input.PadRight(12, '-'));Sla uw codebestand op en gebruik Visual Studio Code om uw code uit te voeren. U ziet vier streepjes voor de linkerkant van de tekenreeks die 12 tekens lang is.
----Pad this Pad this----
Pas deze nieuwe kennis nu toe op een ander praktijkscenario.
Werken met opgevulde tekenreeksen
Stel dat u werkt voor een betalingsverwerkingsbedrijf dat nog steeds verouderde mainframesystemen ondersteunt. Vaak moeten voor deze systemen gegevens worden ingevoerd in specifieke kolommen. Sla bijvoorbeeld de betalings-id op in kolommen 1 tot en met 6, de naam van de betaler in kolommen 7 tot en met 30 en het betalingsbedrag in kolommen 31 tot en met 40. Het betalingsbedrag is ook rechts uitgelijnd.
U wordt gevraagd een toepassing te bouwen waarmee gegevens in het relationele databasebeheersysteem worden geconverteerd naar de verouderde bestandsindeling. Om ervoor te zorgen dat de integratie correct werkt, is de eerste stap het bevestigen van de bestandsindeling door de verouderde systeemonderhouders een voorbeeld van de uitvoer te geven. Later bouwt u voort op dit werk om honderden of duizenden betalingen te verzenden die moeten worden verwerkt via een ASCII-tekstbestand.
De betalings-id toevoegen aan de uitvoer
Als u wilt beginnen, drukt u de betalings-id af in de eerste zes kolommen. U kiest een aantal willekeurige betalingsgegevens die geschikt moeten zijn voor de doeleinden.
Verwijder of gebruik de operator
//voor regelopmerking om alle code uit de vorige stap uit de commentaar te verwijderen of te gebruiken.Werk uw code als volgt bij in de Visual Studio Code-editor:
string paymentId = "769C"; var formattedLine = paymentId.PadRight(6); Console.WriteLine(formattedLine);Gebruik de
formattedLinevariabele opnieuw om de uitvoertekenreeks te maken.Sla uw codebestand op en gebruik Visual Studio Code om uw code uit te voeren. U ziet nu de volgende uitvoer:
769C
Er zijn twee spaties aan de rechterkant die niet zichtbaar zijn. U bevestigt dat deze bestaan in de volgende stap.
Voeg de naam van de betabetaler toe aan de uitvoer
Vervolgens voegt u een fictieve payee-naam toe, die deze op de juiste manier opvult.
Werk uw code als volgt bij in de Visual Studio Code-editor:
string paymentId = "769C"; string payeeName = "Mr. Stephen Ortega"; var formattedLine = paymentId.PadRight(6); formattedLine += payeeName.PadRight(24); Console.WriteLine(formattedLine);De
+=operator voert een tekenreekssamenvoeging uit, waarbij de vorige waarde van de variabeleformattedLinewordt gebruikt en de nieuwe waarde eraan wordt toegevoegd. Dit is een verkort equivalent van het volgende codevoorbeeld:formattedLine = formattedLine + payeeName.PadRight(24);Sla uw codebestand op en gebruik Visual Studio Code om uw code uit te voeren. U ziet nu de volgende uitvoer:
769C Mr. Stephen Ortega
Nogmaals, er zijn nogal wat spaties na de naam van de payee. Er zijn ook twee spaties na de betalings-id uit stap 1.
Het betalingsbedrag toevoegen aan de uitvoer
Voeg vervolgens een fictief betalingsbedrag toe en zorg ervoor dat PadLeft() u de uitvoer rechts uitlijnt.
Werk uw code als volgt bij in de Visual Studio Code-editor:
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);Sla uw codebestand op en gebruik Visual Studio Code om uw code uit te voeren. U ziet nu de volgende uitvoer:
769C Mr. Stephen Ortega $5,000.00
Deze uitvoer is vrij dicht bij wat u begrijpt dat de verouderde systeemonderhouders zochten.
Voeg een regel getallen toe boven de uitvoer om het resultaat gemakkelijker te bevestigen
Omdat het lastig is om de exacte kolommen te tellen waar elk gegevenselement wordt weergegeven, voegt u een regel toe direct boven de uitvoer waarmee u de kolommen kunt tellen.
Console.WriteLine("1234567890123456789012345678901234567890");
Werk uw code als volgt bij in de Visual Studio Code-editor:
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);Sla uw codebestand op en gebruik Visual Studio Code om uw code uit te voeren. U ziet de volgende uitvoer, die u naar de onderhouders van het verouderde systeem kunt verzenden om te controleren of de nieuwe integratie correct werkt:
1234567890123456789012345678901234567890 769C Mr. Stephen Ortega $5,000.00
Gelukt!
Samenvatting
Er zijn enkele belangrijke punten uit deze les.
- Het
stringgegevenstype, letterlijke tekenreeksen en variabelen van het type tekenreeks implementeren elk veel helpermethoden voor het opmaken, wijzigen en uitvoeren van andere bewerkingen op tekenreeksen. - De
PadLeft()enPadRight()methoden voegen witruimte (of optioneel een ander teken) toe aan de totale lengte van een tekenreeks. - Hiermee
PadLeft()kunt u een tekenreeks rechts uitlijnen. - Sommige methoden zijn overbelast, wat betekent dat ze meerdere versies van de methode hebben met verschillende argumenten die van invloed zijn op hun functionaliteit.
- De
+=operator voegt een nieuwe tekenreeks aan de rechterkant samen met de bestaande tekenreeks aan de linkerkant.
Uw kennis controleren
Feedback
Is deze pagina nuttig?
Nee
Need help with this topic?
Want to try using Ask Learn to clarify or guide you through this topic?