Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die String.Split-Methode erstellt ein Array mit Teilzeichenfolgen, indem die Eingabezeichenfolge von mindestens einem Trennzeichen geteilt wird. Sie stellt in der Regel die einfachste Möglichkeit dar, eine Zeichenfolge an Wortgrenzen zu teilen.
Tipp
Sie können KI-Unterstützung verwenden, um eine Zeichenfolge aufzuteilen.
Aufteilen einer Zeichenfolge in Wörter
Mithilfe des folgenden Codes wird ein häufig verwendeter Ausdruck in ein Array mit Zeichenfolgen für jedes Wort unterteilt.
string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ');
foreach (var word in words)
{
Console.WriteLine($"<{word}>");
}
Jede Instanz eines Trennzeichens gibt einen Wert in dem zurückgegebenen Array zurück. Da Arrays in C# nullindiziert sind, wird jede Zeichenfolge im Array von 0 bis zum von der Array.Length Eigenschaft zurückgegebenen Wert minus 1 indiziert:
string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ');
for (int i = 0; i < words.Length; i++)
{
Console.WriteLine($"Index {i}: <{words[i]}>");
}
Das String.Split hat viele Überladungen. Diese Überladungen passen das Verhalten für das Teilen von Zeichenfolgen an:
- Sie können Trennzeichen als
charWerte oderstringWerte angeben. - Sie können ein Trennzeichen oder mehrere Trennzeichen angeben. Wenn Sie mehrere Trennzeichen angeben, müssen sie alle denselben Typ aufweisen (entweder
charoderstring). - Sie können die maximale Anzahl der zurückzugebenden Teilzeichenfolgen angeben.
- Sie können angeben, ob wiederholte Trennzeichen ignoriert werden, oder leere Teilzeichenfolgen im Rückgabewert erzeugen.
- Sie können angeben, ob führende und nachfolgende Leerzeichen aus den zurückgegebenen Teilzeichenfolgen entfernt werden.
In den verbleibenden Beispielen werden verschiedene Überladungen verwendet, um jedes dieser Verhaltensweisen darzustellen.
Weitere Informationen zu Indizes finden Sie im Artikel " Erkunden von Indizes und Bereichen" .
Angeben mehrerer Trennzeichen
String.Split kann mehrere Trennzeichen verwenden. In diesem Beispiel werden Leerräume, Kommas, Punkte, Doppelpunkte und Tabstopps verwendet, die in einem Array an Split übergeben werden. Die Schleife am Ende des Codes zeigt sämtliche Wörter im zurückgegeben Array an.
char[] delimiterChars = [' ', ',', '.', ':', '\t'];
string text = "one\ttwo three:four,five six seven";
Console.WriteLine($"Original text: '{text}'");
string[] words = text.Split(delimiterChars);
Console.WriteLine($"{words.Length} words in text:");
foreach (var word in words)
{
Console.WriteLine($"<{word}>");
}
Aufeinander folgende Instanzen einer beliebigen Trennlinie geben die leere Zeichenfolge im Ausgabearray zurück:
char[] delimiterChars = [' ', ',', '.', ':', '\t'];
string text = "one\ttwo :,five six seven";
Console.WriteLine($"Original text: '{text}'");
string[] words = text.Split(delimiterChars);
Console.WriteLine($"{words.Length} words in text:");
foreach (var word in words)
{
Console.WriteLine($"<{word}>");
}
String.Split kann ein Array mit Zeichenfolgen aufnehmen (Zeichenfolgen, die als Trennzeichen für die Analyse der Zielzeichenfolge fungieren, statt einzelne Zeichen).
string[] separatingStrings = ["<<", "..."];
string text = "one<<two......three<four";
Console.WriteLine($"Original text: '{text}'");
string[] words = text.Split(separatingStrings, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine($"{words.Length} substrings in text:");
foreach (var word in words)
{
Console.WriteLine(word);
}
Beschränken der Ausgabegröße
Das folgende Beispiel zeigt, wie die Ausgabe auf die ersten vier Teilzeichenfolgen in der Quellzeichenfolge beschränkt wird.
string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ', 4, StringSplitOptions.None);
foreach (var word in words)
{
Console.WriteLine($"<{word}>");
}
Entfernen leerer Teilzeichenfolgen
Aufeinander folgende Trennzeichen geben eine leere Zeichenfolge als Wert in einem zurückgegebenen Array zurück. Im folgenden Beispiel sehen Sie, wie ein leere Zeichenfolge erstellt wird. Hier wird das Leerzeichen als Trennzeichen verwendet.
string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ');
foreach (var word in words)
{
Console.WriteLine($"<{word}>");
}
Dieses Verhalten vereinfacht den Vorgang für Formate wie CSV (Comma Separated Values, durch Trennzeichen getrennte Werte), die Tabellendaten darstellen. Aufeinander folgende Kommas stellen eine leere Spalte dar.
Sie können einen optionalen StringSplitOptions.RemoveEmptyEntries-Parameter übergeben, um jegliche leeren Zeichenfolgen aus dem zurückgegebenen Array auszuschließen. Für kompliziertere Prozesse der zurückgegebenen Auflistung können Sie LINQ verwenden, um die Ergebnissequenz zu manipulieren.
Kürzen von Leerzeichen
Das folgende Beispiel zeigt den Effekt des Kürzens von Einträgen:
string numerals = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10";
string[] words = numerals.Split(',', StringSplitOptions.TrimEntries);
Console.WriteLine("Trimmed entries:");
foreach (var word in words)
{
Console.WriteLine($"<{word}>");
}
words = numerals.Split(',', StringSplitOptions.None);
Console.WriteLine("Untrimmed entries:");
foreach (var word in words)
{
Console.WriteLine($"<{word}>");
}
Die ungetrimmten Einträge weisen vor den Ziffern zusätzliche Leerzeichen auf.
Verwenden von KI zum Teilen einer Zeichenfolge
Sie können KI-Tools wie GitHub Copilot verwenden, um Code zu generieren, um Zeichenfolgen mithilfe von String.Split C# aufzuteilen. Sie können die Eingabeaufforderung so anpassen, dass Zeichenfolgen und Trennzeichen gemäß Ihren Anforderungen verwendet werden.
Der folgende Text zeigt eine Beispielaufforderung für Copilot Chat:
Generate C# code to parse and split CSV-style data from user input or external export that isn't well formed.
The input string may contain mixed delimiters (commas, semicolons), inconsistent spacing and empty entries.
Parse the string: accept all valid separators, remove any empty values and trim whitespace from all entries.
Return a clean list of values.
Show example output for the string: " apples, oranges ; bananas, , ;pears".
Überprüfen Sie die Vorschläge von Copilot, bevor Sie sie anwenden.
Weitere Informationen finden Sie unter Copilot-FAQs.