begin process at 2008 08 22 04:21:19
1 229 775 membres
46 nouveaux aujourd'hui
14 267 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Parcourir string en partant de la fin [ Windows / Autre ] (Monico9385)

Parcourir string en partant de la fin le 11/06/2007 17:41:18

Monico9385
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



Re : Parcourir string en partant de la fin le 11/06/2007 17:51:09

niky
Membre Club
Réponse acceptée !
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é.

Re : Parcourir string en partant de la fin le 11/06/2007 18:01:29

Monico9385
Merci beaucoup, je vais essayer ca !

Re : Parcourir string en partant de la fin le 11/06/2007 19:20:39

Lutinore
(Admin CS)
Salut,

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

char c = machaine[ i ];

Re : Parcourir string en partant de la fin le 11/06/2007 19:22:40

Bidou
(Admin CS)
Réponse acceptée !
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 = newStringBuilder();
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



-Blog-

Re : Parcourir string en partant de la fin le 11/06/2007 19:28:04

Lutinore
(Admin CS)
Réponse acceptée !
Bon alors en voillà une autre.




string[ ] tab = "toto test toto2 test2".Split( ' ' );
Array.Reverse( tab );

Re : Parcourir string en partant de la fin le 11/06/2007 19:28:13

Monico9385
Ah ok, je n'ai que l'embarras du choix alors.
Merci beaucoup pour vos aides en tout cas




Classé sous : fin, string, parcourir, dernier, partant

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS