Tekenreeksen scheiden met behulp van String.Split in C#
De String.Split methode maakt een matrix met subtekenreeksen door de invoertekenreeks te splitsen op basis van een of meer scheidingstekens. Deze methode is vaak de eenvoudigste manier om een tekenreeks op woordgrenzen te scheiden. Het wordt ook gebruikt om tekenreeksen te splitsen op andere specifieke tekens of tekenreeksen.
Notitie
De C#-voorbeelden in dit artikel worden uitgevoerd in de Try.NET inline coderunner en playground. Selecteer de knop Uitvoeren om een voorbeeld uit te voeren in een interactief venster. Nadat u de code hebt uitgevoerd, kunt u deze wijzigen en de gewijzigde code uitvoeren door Opnieuw uitvoeren te selecteren. De gewijzigde code wordt uitgevoerd in het interactieve venster of, als de compilatie mislukt, worden alle C#-compilerfoutberichten weergegeven.
Advies
U kunt AI-hulp gebruiken om een tekenreeks te splitsen met GitHub Copilot.
Voorbeelden van String.Split
Met de volgende code wordt een algemene woordgroep gesplitst in een matrix met tekenreeksen voor elk woord.
string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ');
foreach (var word in words)
{
System.Console.WriteLine($"<{word}>");
}
Elk exemplaar van een scheidingsteken produceert een waarde in de geretourneerde matrix. Omdat matrices in C# nul geïndexeerd zijn, wordt elke tekenreeks in de matrix geïndexeerd van 0 naar de waarde die wordt geretourneerd door de Array.Length eigenschap min 1:
string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ');
for (int i = 0; i < words.Length; i++)
{
System.Console.WriteLine($"Index {i}: <{words[i]}>");
}
Opeenvolgende scheidingstekens produceren de lege tekenreeks als een waarde in de geretourneerde matrix. In het volgende voorbeeld ziet u hoe een lege tekenreeks wordt gemaakt, waarbij het spatieteken als scheidingsteken wordt gebruikt.
string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ');
foreach (var word in words)
{
System.Console.WriteLine($"<{word}>");
}
Dit gedrag maakt het eenvoudiger voor indelingen zoals CSV-bestanden (door komma's gescheiden waarden) die tabelgegevens vertegenwoordigen. Opeenvolgende komma's vertegenwoordigen een lege kolom.
U kunt een optionele StringSplitOptions.RemoveEmptyEntries parameter doorgeven om lege tekenreeksen uit te sluiten in de geretourneerde matrix. Voor complexere verwerking van de geretourneerde verzameling kunt u LINQ gebruiken om de resultatenreeks te bewerken.
String.Split kan meerdere scheidingstekens gebruiken. In het volgende voorbeeld worden spaties, komma's, punten, dubbele punten en tabs gebruikt als scheidingstekens, die in een matrix worden doorgegeven Split . In de lus onder aan de code worden alle woorden in de geretourneerde matrix weergegeven.
char[] delimiterChars = { ' ', ',', '.', ':', '\t' };
string text = "one\ttwo three:four,five six seven";
System.Console.WriteLine($"Original text: '{text}'");
string[] words = text.Split(delimiterChars);
System.Console.WriteLine($"{words.Length} words in text:");
foreach (var word in words)
{
System.Console.WriteLine($"<{word}>");
}
Opeenvolgende exemplaren van een scheidingsteken produceren de lege tekenreeks in de uitvoermatrix:
char[] delimiterChars = { ' ', ',', '.', ':', '\t' };
string text = "one\ttwo :,five six seven";
System.Console.WriteLine($"Original text: '{text}'");
string[] words = text.Split(delimiterChars);
System.Console.WriteLine($"{words.Length} words in text:");
foreach (var word in words)
{
System.Console.WriteLine($"<{word}>");
}
String.Split kan een matrix van tekenreeksen (tekenreeksen die fungeren als scheidingstekens voor het parseren van de doeltekenreeks, in plaats van enkele tekens) gebruiken.
string[] separatingStrings = { "<<", "..." };
string text = "one<<two......three<four";
System.Console.WriteLine($"Original text: '{text}'");
string[] words = text.Split(separatingStrings, System.StringSplitOptions.RemoveEmptyEntries);
System.Console.WriteLine($"{words.Length} substrings in text:");
foreach (var word in words)
{
System.Console.WriteLine(word);
}
GitHub Copilot gebruiken om een tekenreeks te splitsen
U kunt GitHub Copilot in uw IDE gebruiken om code te genereren voor het splitsen van tekenreeksen met behulp van String.Split
C#. U kunt de prompt aanpassen om tekenreeksen en scheidingstekens te gebruiken volgens uw vereisten.
In de volgende tekst ziet u een voorbeeldprompt voor Copilot Chat:
Generate C# code to use Split.String to split a string into substrings.
Input string is "You win some. You lose some." Delimiters are space and period.
Provide example output.
GitHub Copilot wordt mogelijk gemaakt door AI, dus verrassingen en fouten zijn mogelijk. Zie Veelgestelde vragen over Copilotvoor meer informatie.
Meer informatie over GitHub Copilot in Visual Studio en GitHub Copilot in VS Code.