A la recherche de la méthode perdue

Résolu
Rhend Messages postés 43 Date d'inscription lundi 20 octobre 2008 Statut Membre Dernière intervention 14 juin 2009 - 19 janv. 2009 à 17:42
Rhend Messages postés 43 Date d'inscription lundi 20 octobre 2008 Statut Membre Dernière intervention 14 juin 2009 - 20 janv. 2009 à 10:24
Bonsoir,

Je recherche une méthode en C# qui me permettrais, dans une chaîne de caractère, d'isoler l'ensemble de caractère comprit entre deux espaces. Est-ce que ca éxiste ? Et si oui laquelle est-ce ?

Mon problème étant que je veux pouvoir de façon automatique récuperer le deuxieme mot de ma  variable string. Exemple :

"1 tomate troué" >>> tomate

Voila, merci de votre aide future :)

Ps: Le substring ne marchera pas étant donné que la longueurs de tout ce qui suis le deuxième mot est totalement arbitraire et ne peux donc pas être gerer. La seul chose qui ne bouge pas c'est ce deuxième mot qui est entre deux espaces quoiqu'il arrive.

4 réponses

billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
19 janv. 2009 à 18:05
Bonsoir,

Une petite fonction intéressante: String.Split(...) : http://msdn.microsoft.com/fr-fr/library/system.string.split(VS.80).aspx

Ce qui te donnera:
string str = "1 tomate troué";
string[] items = str.Split(new char[] { ' ' });
string result = items[1];
//Attention à gérer les exceptions !

Bonne soirée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
20 janv. 2009 à 09:17
Autre solution:

string str = "1   tomate        troué";
string[] res = Regex.Split(str, @"\s+");string sol res null && res.Length > 1 ? String.Empty : res[1];

Sûrement un peu plus lent, mais a l'avantage de gérer les espaces multiples...

<hr />
-Blog-
-Site Perso-
3
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
20 janv. 2009 à 09:35
Bidou,

Dans le test de ton opérateur trinaire, ne serait-ce pas plutôt:string sol (res null || res.Length <= 1) ? String.Empty : res[1];
OU
string sol = (res != null && res.Length > 1) ? res[1] : String.Empty;

Bonne journée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
0
Rhend Messages postés 43 Date d'inscription lundi 20 octobre 2008 Statut Membre Dernière intervention 14 juin 2009
20 janv. 2009 à 10:24
Salut,


Merci ca marche, j'ai des cas particuliers à gérer encore mais j'ai réussis a faire fonctionner la méthode Split, je me disais que ct la solution mais j'ai pas le reflexe de regarder sur le site msdn :/


J'ai valider vos deux réponse mais Bidou je n'ai pas tester la tienne, mais comme Billou t'as juste reprit sur la syntaxe j'imagine que ta solution fonctionne aussi correctement ^^
0
Rejoignez-nous