Een heel handige functie (of methode) van de klasse String is Split(...).
Daarmee kan je een tekst opdelen in een array van stukjes, op basis van een
of meer splitsingstekens (zoals een spatie of een leesteken). Je hoeft op
voorhand niet te weten hoeveel stukjes er zullen zijn: C# lost dat zelf voor je
op en maakt de array precies groot genoeg.
Split past dus mooi samen met de foreach-lus: je splitst een tekst in een array,
en overloopt die array vervolgens met een foreach-lus.
In het eerste voorbeeld splitsen we een zin in woorden, door te splitsen op
de spatie. Let op: een spatie als teken schrijf je tussen enkele
aanhalingstekens (' '), want het gaat om een char (één enkel teken), niet om
een string.
string deTekst = "We hebben een stukje tekst nodig voor dit voorbeeld";
string[] woorden = deTekst.Split(' ');
foreach (string woord in woorden)
{
Console.WriteLine(woord);
}
De array woorden bevat na het splitsen acht elementen, één per woord. De
foreach-lus toont ze elk op een aparte regel:
We
hebben
een
stukje
tekst
nodig
voor
dit
voorbeeld
Soms wil je op meerdere tekens tegelijk splitsen, bijvoorbeeld op een spatie én
op verschillende leestekens. Daarvoor geef je aan Split een array van chars
mee. Elk teken uit die array zorgt voor een nieuwe opdeling.
string tweedeTekst = "Een.tekst met?ook!leestekens;erin";
char[] leestekens = { ' ', '.', '!', '?', ';', ':' };
string[] woorden = tweedeTekst.Split(leestekens);
foreach (string woord in woorden)
{
Console.WriteLine(woord);
}
Hier wordt op zes verschillende tekens gesplitst: de spatie en vijf leestekens. Elk van die tekens markeert het einde van een stukje. De uitvoer is:
Een
tekst
met
ook
leestekens
erin
Het type tussen de aanhalingstekens maakt een verschil:
' '(enkele aanhalingstekens) is eenchar, één enkel teken." "(dubbele aanhalingstekens) zou eenstringzijn.Splitwerkt hier metchar’s, dus gebruik je enkele aanhalingstekens.