Oefening: de methoden Remove() en Replace() gebruiken
- 8 minuten
In deze oefening verwijdert u tekens uit een tekenreeks met behulp van de Remove() methode en vervangt u tekens met behulp van de Replace() methode.
Soms moet u de inhoud van een tekenreeks wijzigen, tekens verwijderen of vervangen. Hoewel u tekens kunt vervangen met de hulpmiddelen die u al kent, vereist het enig tijdelijk opslaan en weer samenvoegen van tekenreeksen. Gelukkig heeft het string gegevenstype andere ingebouwde methoden Remove() en Replace()voor deze gespecialiseerde scenario's.
Gebruik de Remove()-methode
U zou Remove() doorgaans gebruiken wanneer er een standaard en consistente positie is van de tekens die u uit de tekenreeks wilt verwijderen.
Deze oefening bevat gegevens die zijn opgeslagen in oudere bestanden met een vaste lengte en met tekenposities die zijn toegewezen voor bepaalde informatievelden. De eerste vijf cijfers vertegenwoordigen een klantidentificatienummer. De volgende 20 cijfers bevatten de naam van een klant. De volgende zes posities vertegenwoordigen het meest recente factuurbedrag van de klant en de laatste drie posities vertegenwoordigen het aantal artikelen dat op die factuur is besteld.
In de volgende stappen moet u de naam van de klant verwijderen om de gegevens op te maken, zodat deze naar een afzonderlijk proces kunnen worden verzonden. Aangezien u de exacte positie en lengte van de naam van de gebruiker kent, kunt u deze eenvoudig verwijderen met behulp van de Remove() methode.
Tekens op specifieke locaties uit een tekenreeks verwijderen
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 data = "12345John Smith 5000 3 "; string updatedData = data.Remove(5, 20); Console.WriteLine(updatedData);Selecteer Opslaan in het menu Visual Studio Code File.
Het Program.cs-bestand moet worden opgeslagen 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.
U ziet nu de volgende uitvoer:
123455000 3De
Remove()methode werkt op dezelfde manier als deSubstring()methode. U geeft een beginpositie en de lengte op om deze tekens uit de tekenreeks te verwijderen.
Gebruik de Replace()-methode
De Replace() methode wordt gebruikt wanneer u een of meer tekens moet vervangen door een ander teken (of geen teken). De Replace() methode verschilt van de andere methoden die tot nu toe worden gebruikt, maar vervangt elk exemplaar van de opgegeven tekens, niet alleen het eerste of laatste exemplaar.
Tekens verwijderen, ongeacht waar ze worden weergegeven in een tekenreeks
Werk uw code als volgt bij in de Visual Studio Code-editor:
string message = "This--is--ex-amp-le--da-ta"; message = message.Replace("--", " "); message = message.Replace("-", ""); Console.WriteLine(message);Sla uw codebestand op en gebruik Visual Studio Code om uw code uit te voeren.
U ziet nu de volgende uitvoer:
This is example dataHier hebt u de
Replace()methode twee keer gebruikt. De eerste keer dat u de tekenreeks--hebt vervangen door een spatie. De tweede keer dat u de tekenreeks-hebt vervangen door een lege tekenreeks, waardoor het teken volledig uit de tekenreeks wordt verwijderd.
Samenvatting
Hier volgen twee belangrijke dingen die u moet onthouden:
- De
Remove()methode werkt als deSubstring()methode, behalve dat de opgegeven tekens in de tekenreeks worden verwijderd. - Met de
Replace()methode worden alle exemplaren van een tekenreeks gewisseld met een nieuwe tekenreeks.
Uw kennis controleren
Feedback
Is deze pagina nuttig?
No
Hulp nodig bij dit onderwerp?
Wilt u Ask Learn gebruiken om iets te verduidelijken of u door dit onderwerp te leiden?