Oefening: Split() en Join() ontdekken
- 10 minuten
Wanneer u uw ontwikkelingswerk voor een logistiek bedrijf voortzet, begint u met het bouwen van een reeks kleine toepassingen. Deze toepassingen werken samen om gegevens uit het systeem van één partner te halen, te wijzigen en vervolgens door te geven aan een intern systeem in de vereiste indeling.
Als u gegevenstransformatie wilt uitvoeren, moet u binnenkomende gegevens als een tekenreeks accepteren, deze parseren in kleinere gegevenselementen en deze vervolgens bewerken zodat deze overeenkomt met de verschillende indelingen die vereist zijn. Hoe kunt u de tekenreeksgegevens parseren in kleinere gegevenselementen?
Matrixmethoden van het gegevenstype tekenreeks
De variabelen van het type string bevatten veel ingebouwde methoden om één tekenreeks om te zetten in een matrix met kleinere tekenreeksen of in een matrix met afzonderlijke tekens.
Wanneer u gegevens van andere computersystemen verwerkt, worden deze soms opgemaakt of gecodeerd op een manier die niet nuttig is voor uw doeleinden. In deze gevallen gebruikt u de matrixmethoden van het string gegevenstype om een tekenreeks te parseren in een matrix.
Gebruik het ToCharArray() omkeren van een string
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 value = "abc123"; char[] valueArray = value.ToCharArray();
In dit voorbeeld wordt de methode gebruikt voor het ToCharArray() maken van een matrix van char, waarbij elk element van de matrix één teken van de oorspronkelijke tekenreeks vertegenwoordigt.
Omgekeerd en vervolgens de tekenmatrix combineren in een nieuwe tekenreeks
Vervolgens wordt de volgorde van de tekens in de matrix omgekeerd en wordt de Write methode gebruikt om ze weer te combineren in één uitvoer.
Werk uw code als volgt bij in de Visual Studio Code-editor:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); string result = new string(valueArray); Console.WriteLine(result);Met de expressie
new string(valueArray)maakt u een nieuw lege instantie van de klasseSystem.String(die hetzelfde is als het gegevenstypestringin C#) en geeft u de matrix met tekens door als een constructor.Notitie
Wat is het sleutelwoord
new? Hoe wordt de klasseSystem.Stringgerelateerd aan het gegevenstypestringin C#? Wat is een constructor? Allemaal goede vragen, die helaas buiten het bereik van deze module vallen. U wordt aangeraden om meer te weten te komen over de .NET-klassebibliotheek en klassen en objecten in C# om volledig te begrijpen wat er achter de schermen gebeurt met deze expressie van code. Gebruik voorlopig een zoekmachine en Microsoft-documentatie om voorbeelden te vinden die u kunt gebruiken in situaties zoals deze waarin u weet dat u een conversie wilt uitvoeren, maar niet zeker weet hoe u dit doet met behulp van C#.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.
Notitie
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>U moet de volgende uitvoer zien:
321cba
Combineer alle tekens in een nieuwe tekenreeks met door komma's gescheiden waarden met behulp van Join()
In sommige gevallen moet u mogelijk elk element van de tekenma scheiden met behulp van een komma. Dit is gebruikelijk bij het werken met gegevens die worden weergegeven als ASCII-tekst. Hiervoor markeert u de coderegel die u hebt toegevoegd in stap 2 en gebruikt u de String klassemethode Join() , waarbij u het teken doorgeeft dat u elk segment (de komma) en de matrix zelf wilt scheiden.
Werk uw code als volgt bij in de Visual Studio Code-editor:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); // string result = new string(valueArray); string result = String.Join(",", valueArray); Console.WriteLine(result);Sla uw codebestand op en gebruik Visual Studio Code om uw code uit te voeren.
U moet de volgende uitvoer zien:
3,2,1,c,b,a
Split() de tekenreeks met door komma's gescheiden waarden in een matrix met tekenreeksen
De methode wordt gebruikt om de Split() code te voltooien. Deze methode is ontworpen voor variabelen van het type string en maakt een matrix met tekenreeksen.
Gebruik de Visual Studio Code-editor om de volgende coderegels onder aan het bestand toe te voegen:
string[] items = result.Split(','); foreach (string item in items) { Console.WriteLine(item); }Neem even de tijd om de vorige code te bekijken.
De komma wordt als scheidingsteken opgegeven
.Split()om één lange tekenreeks te splitsen in kleinere tekenreeksen. De code gebruikt vervolgens eenforeachlus om elk element van de zojuist gemaakte matrix met tekenreeksen te herhalen.itemsControleer of uw code nu als volgt wordt weergegeven:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); // string result = new string(valueArray); string result = String.Join(",", valueArray); Console.WriteLine(result); string[] items = result.Split(','); foreach (string item in items) { Console.WriteLine(item); }Sla uw codebestand op en gebruik Visual Studio Code om uw code uit te voeren.
Wanneer u de code uitvoert, ziet u de volgende uitvoer:
3,2,1,c,b,a 3 2 1 c b aDe
itemsmatrix die is gemaakt met behulpstring[] items = result.Split(',');van de lus, wordt gebruikt in deforeachlus en geeft de afzonderlijke tekens weer van het origineelstringin devaluevariabele.
Samenvatting
Hier volgen enkele belangrijke punten die u moet onthouden bij het werken met tekenreeksen en matrices:
- Als u een matrix wilt maken, gebruikt u methoden zoals
ToCharArray()enSplit() - Als u de matrix weer wilt omzetten in één tekenreeks, gebruikt u methoden zoals
Join()of maakt u een nieuwe tekenreeks die wordt doorgegeven in een matrix vanchar
Kennis testen
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?