web-dev-qa-db-fra.com

Fractionner la chaîne en fonction de la première occurrence du caractère

Comment puis-je diviser une chaîne C # en fonction de la première occurrence du caractère spécifié? Supposons que j'ai une chaîne avec la valeur "101, a, b, c, d". Je veux le diviser en 101 & a, b, c, d. C'est par la première occurrence de caractère virgule.

47
Vishnu Y

Vous pouvez spécifier le nombre de sous-chaînes à renvoyer à l'aide de string.Split:

var pieces = myString.Split(new[] { ',' }, 2);

Résultats:

101
a,b,c,d
111
Grant
string s = "101,a,b,c,d";
int index = s.IndexOf(',');
string first =  s.Substring(0, index);
string second = s.Substring(index + 1);
17
Arin Ghazarian

Vous pouvez utiliser Substring pour obtenir les deux parties séparément.

Tout d'abord, vous utilisez IndexOf pour obtenir la position de la première virgule, puis vous la divisez:

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

Sur la deuxième partie, le +1 est d'éviter d'inclure la virgule.

6
Pierre-Luc Pineault

Utilisez la fonction string.Split(). Il faut le max. nombre de morceaux qu'il va créer. Supposons que vous ayez une chaîne "abc, def, ghi" et que vous appelez Split () dessus avec le paramètre count réglé sur 2, cela créera deux morceaux "abc" et "def, ghi".

3
dotNET

Dans .net Core, vous pouvez utiliser les éléments suivants:

var pieces = myString.Split(',', 2);

Résultats:

101
a,b,c,d
0
mark_h