Séparer un string dans un tableau [Résolu]

Signaler
Messages postés
21
Date d'inscription
jeudi 23 avril 2009
Statut
Membre
Dernière intervention
4 août 2009
-
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
-
Bonjour.

Je possède un string qui contient beaucoup d'informations (la conf d'un switch). Ces informations sont séparées chacune par un ou plusieurs espaces.

J'aimerai trouver un moyen pour qu'à chaque fois qu'il y ai un (ou plusieurs) espace(s)dans le string celui(ceux)-ci soit enlevé et qu'il n'y ait uniquement le texte de conservé.

En faisait string

[] tab = monstring.Split(
new
Char[] {
' ' });

cela me sépare bien tout dans le tableau mais ça conserve aussi les espaces !

Merci d'avance pour votre aide !

7 réponses

Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
44
string[] separateurs = new string[]{" ", "\n", "\r"}; // enlève le caractère vide.
string[] resultat = macadrtable.Split(separateurs, StringSplitOptions.RemoveEmptyEntries); // Change l'option. Celle là est faite spécialement pour ton problème ;)

Krimog : while (!(succeed = try())) ;
- Quand le règlement tu respecteras, ravis de te répondre on sera -
- NON, "LE BAR" n'est
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
44
Salut

C'est très étonnant. Normalement, la méthode Split() ne conserve pas les caractères "splités". (et je viens de retester). Est-tu sûr que le caractère restant est bien le caractère "espace" ?

Krimog : while (!(succeed = try())) ;
- Quand le règlement tu respecteras, ravis de te répondre on sera -
- NON, "LE BAR" n'est PAS un langage de programmation ! -
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Bonjour,
Peut-être essayer avec
string[] s =
Regex.Split(
"my input",
@"\s+");

<hr />
-Blog-
-Site Perso-
Messages postés
21
Date d'inscription
jeudi 23 avril 2009
Statut
Membre
Dernière intervention
4 août 2009

Tu avais raison krimog, le caractère à éliminer n'est en fait pas le caractère espace, mais le caractère vide ("") ! Je m'en suis aperçu en regardant mon tableau en mode debug.

Le problème est que si je rajoute '' (deux simples quotes) il me sort une erreur à la compilation ("littéral de caractère vide"). Je ne sais pas trop ce que ça veut dire :s
Messages postés
21
Date d'inscription
jeudi 23 avril 2009
Statut
Membre
Dernière intervention
4 août 2009

J'ai essayé une autre méthode :


string monstringaseparer;




string

[] separateurs =


new





string

[] {


""

,


" "

,


"\n"

,


"\r"

};





string

[] resultat;

resultat = macadrtable.Split(separateurs,
StringSplitOptions.None);

Du coup j'ai pu mettre le caractère vide dans les paramètres cette fois, pourtant ça ne fonctionne toujours pas ...

Si ça peut aider, la variable monstringaseparer est un string qui contient tout le résultat d'une commande envoyé en telnet.
Messages postés
21
Date d'inscription
jeudi 23 avril 2009
Statut
Membre
Dernière intervention
4 août 2009

Super c'était ça ! Merci beaucou t'es un chef !
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
44
De rien ;)

Bonne continuation

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -