Wie kann ich eine C # -String basierend auf dem ersten Auftreten des angegebenen Zeichens teilen? Angenommen, ich habe eine Zeichenfolge mit dem Wert:
101,a,b,c,d
Ich möchte es aufteilen als
101
a,b,c,d
Das ist durch das erste Auftreten von Kommazeichen.
Sie können
Substring
beide Teile separat erhalten.Zuerst ermitteln Sie
IndexOf
die Position des ersten Kommas und teilen es dann auf:string input = "101,a,b,c,d"; int firstCommaIndex = input.IndexOf(','); string firstPart = input.Substring(0, firstCommaIndex); //101 string secondPart = input.Substring(firstCommaIndex + 1); //a,b,c,d
Im zweiten Teil
+1
ist zu vermeiden, dass das Komma eingefügt wird.quelle
Verwenden Sie
string.Split()
Funktion. Es dauert die max. Anzahl der Chunks, die erstellt werden. Angenommen, Sie haben eine Zeichenfolge "abc, def, ghi" und rufen Split () mit demcount
Parameter 2 auf. Dadurch werden zwei Blöcke "abc" und "def, ghi" erstellt. Stellen Sie sicher, dass Sie esstring.Split(new[] {','}, 2)
so nennen , damit das C # es nicht mit der anderen Überladung verwechselt.quelle
In .net Core können Sie Folgendes verwenden:
var pieces = myString.Split(',', 2);
Kehrt zurück:
101 a,b,c,d
quelle
Split(',', 2)
löst eine Warnung aus , die mit Visual Studio , um gegossene fragen2
zuchar
.var pieces = myString.Split(',', 2);
Das wird nicht funktionieren. Die Überladung stimmt nicht überein und der Compiler lehnt sie ab.
So muss es sein:
char[] chDelimiter = {','}; var pieces = myString.Split(chDelimiter, 2);
quelle