Parcourir string en partant de la fin [Résolu]

Messages postés
279
Date d'inscription
lundi 29 mars 2004
Dernière intervention
6 août 2007
- - Dernière réponse : chicfrandy
Messages postés
8
Date d'inscription
mercredi 7 mars 2012
Dernière intervention
8 mars 2012
- 8 mars 2012 à 18:20
Bonjour,

j'aurai aimé savoir, s'il était possible de parcourir une string mais en partant de la fin. En effet, je voudrait récupérer dans un tableau le dernier élément de ma string avant le dernier espace. En plus clair ca donne ca :

string = toto test toto2 test2

et j'aimerai récupérer monTab[0] = test2, vu que c'est le dernier mot avant le dernier espace.

J'espère que ma question est assez claire.

Merci d'avance pour votre aide
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
168
Date d'inscription
jeudi 28 juin 2001
Dernière intervention
18 octobre 2008
6
1
Merci
Salut,

Pour récupérer le dernier mot, il te faut récupérer l'indice du dernier espace :

string chaine = "toto test toto2 test2"; // La chaîne où on recherche le dernier mot
int indiceEspace = chaine.LastIndexOf(' '); // Recherche l'indice du dernier espace (renvoie -1 s'il n'y a pas d'espace)
monTab[0] = chaine.Substring(indiceEspace + 1); // Récupère la sous-chaîne qui commence à partir de indiceEspace + 1

Sinon, pour parcourir une chaîne à l'envers tu peux le faire en récupérant le tableau de caractères :
char[] caracteres = chaine.ToCharArray();
for (int i = caracteres.Length - 1; i >= 0; i--)
{
    char c = caracteres[i];
    // ... utiliser le caractère c...
}

J'espère que ça t'aura aidé.

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 122 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_niky
Messages postés
279
Date d'inscription
lundi 29 mars 2004
Dernière intervention
6 août 2007
0
Merci
Merci beaucoup, je vais essayer ca !
Commenter la réponse de Monico9385
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
37
0
Merci
Salut,

niky >> inutile de copier la chaine vers un tableau de caractères.. tu peux directement indexer la chaine :

char c = machaine[ i ];
Commenter la réponse de Lutinore
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
59
0
Merci
Salut,
Des solutions, y'en a pleins!
En voici quelques unes :

// 1
string chaine =
"toto test toto2 test2";

string[] res = chaine.Split(
' ');

string result1 = res[res.Length - 1];

// 2
string result2 = chaine.Substring(chaine.LastIndexOf(
' '));

// 3
StringBuilder sb =
new
StringBuilder();

for(
int i=chaine.Length - 1; i>0; i--)
{
  
if(chaine[i] ==
' ')
break;
   sb.Insert(0, chaine[i]);
}

string result3 = sb.ToString();

// 4
string result4 =
Regex.Match(chaine,
@"\s*(\w+)\s*$").Groups[0].Value;

Je te les ai mise par ordre de rapidité.
Le split sur le tableau est donc le plus rapide

<hr />
-Blog-
Commenter la réponse de cs_Bidou
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
37
0
Merci
Bon alors en voillà une autre.

string[ ] tab = "toto test toto2 test2".Split( ' ' );
Array.Reverse( tab );
Commenter la réponse de Lutinore
Messages postés
279
Date d'inscription
lundi 29 mars 2004
Dernière intervention
6 août 2007
0
Merci
Ah ok, je n'ai que l'embarras du choix alors.
Merci beaucoup pour vos aides en tout cas
Commenter la réponse de Monico9385
Messages postés
8
Date d'inscription
mercredi 7 mars 2012
Dernière intervention
8 mars 2012
0
Merci
bonjour deja merci pour vos aide.
onsole.Write("Tapez votre code : ");
String Code = Console.ReadLine();
Console.ReadLine();

for (int i = 0; i < Code.Length; i++)
{
if (i.ToString == "")
Console.WriteLine("entrer ton code sans espace ");
{

Console.WriteLine("bon choix");

}

}
je veux tester un code sans espace mais ca me donne une erreur aider moi svp.
Commenter la réponse de chicfrandy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.