Fractionner une corde en seulement 2 parties

Je veux prendre une chaîne d’une zone de texte (txtFrom) et enregistrer le premier mot et enregistrer ce qui rest dans une autre partie (tout ce qui rest est tout passé après le premier espace)

Example ssortingng = “Bob jones est allé au magasin”

tableau [0] donnerait “Bob”
array [1] donnerait “jones allé au magasin”

Je sais qu’il existe ssortingng[] array = txtFrom.Split(' '); , mais cela me donne un tableau de 6 avec des mots individuels.

Utilisez la Ssortingng.Split(Char[], Int32) comme ceci:

 ssortingng[] array = txtFrom.Text.Split(new char[]{' '},2); 

http://msdn.microsoft.com/en-us/library/c1bs0eda.aspx

Vous combinez simplement une scission avec une jointure pour obtenir le premier élément:

 ssortingng[] items = source.Split(new char[] { ' ' }, SsortingngSplitOptions.RemoveEmptyEnsortinges); ssortingng firstItem = items[0]; ssortingng remainingItems = ssortingng.Join(" ", items.Skip(1).ToList()); 

Vous prenez simplement le premier élément, puis reformez le rest en une chaîne.

Il y a une surcharge de la méthode Ssortingng.Split() qui prend un entier représentant le nombre de sous-chaînes à renvoyer.

Ainsi, votre appel de méthode deviendrait: ssortingng[] array = txtFrom.Text.Split(' ', 2);

 char[] delimiterChars = { ' ', ',' }; ssortingng text = txtSsortingng.Text; ssortingng[] words = text.Split(delimiterChars, 2); txtSsortingng1.Text = words[0].ToSsortingng(); txtSsortingng2.Text = words[1].ToSsortingng(); 

Vous pouvez également essayer RegularExpressions

 Match M = System.Text.RegularExpressions.Regex.Match(source,"(.*?)\s(.*)"); M.Groups[1] //Bob M.Groups[2] // jones went to the store 

L’expression régulière fait correspondre tout au premier espace et le stocke dans le premier groupe le? La marque lui dit de faire le plus petit match possible. La deuxième clause saisit tout ce qui suit l’espace et la stocke dans le deuxième groupe