2011-10-21 3 views
5

J'ai une zone de texte où j'entre l'entrée commechaîne Split en C#, l'espace vide aussi considéré comme chaîne comment jeter une chaîne vide

"Two; [email protected];" 

string[] result = txt_to.Text.Split(';'); 

donc ce qui se passe ici est le résultat prend trois chaînes. 1. deux 2. [email protected] 3. "" (espace vide) puisqu'il y a un; après l'email il considère que comme une chaîne comment je peux jeter la 3ème chaîne qu'il prend. Cela se produit lorsque j'entre le courriel et un point-virgule et que j'appuie sur la barre d'espace pour lancer une erreur. Si c'est juste l'espace après le point-virgule la division devrait le rejeter comment faire cela

Répondre

12

Je rassemble vous voulez diviser la chaîne en un certain nombre de chaînes, mais excluez toutes les chaînes "vides" (celles constituées uniquement d'espaces)? This devrait vous aider ...

string[] result = txt_to.Text.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); 
6
var arr = mystring.Split(new string[]{";"}, StringSplitOptions.RemoveEmptyEntries); 
+0

+1 Est-ce que travailler :-) – xanatos

+0

Est-ce que RemoveEmptyEntries supprimer aussi un espace? Je pensais que c'était juste pour supprimer String.Empty ... Je ne l'ai pas testé. –

3

passe StringSplitOptions paramètre

var result = yourString.Split(new string[] {";"}, StringSplitOptions.RemoveEmptyEntries); 
2

Il me semble que il serait logique de rejeter le strin vide gs du résultat de toute façon, et pas seulement à la fin. Si tel est le cas, vous pouvez utiliser

char[] separators = new char[]{';'}; 
string[] result = txt_to.Text.Split(separators , StringSplitOptions.RemoveEmptyEntries); 
0
string s=txt_to.Text; 
s = s.Replace(" ", ""); 
string[] result = s.Split(';');