2009-08-26 10 views
0

Comment obtenir le dernier index de "%" dans une chaîne dans .NET? J'ai essayéComment obtenir le dernier index de "%" dans une chaîne?

string subString = content.Substring(0, startIndex); 
int nextOpeningComment = subString.LastIndexOf("%", 0); 

Ceci est toujours me envoie -1.

Ici subString Je reçois est:

<div id=\"xyz\"> \r\n <img alt=\"\" src=\"App_Themes/Default/Images/abc.jpg\" />\r\n <%-- 

Toute aide/suggestions appréciées.

+1

Avez-vous un exemple complet? (Plus précisément ce que sont content et startIndex avant le début de ce code.) – Richard

+0

Quelles sont les valeurs de 'content' et' startIndex' dans ce cas supposé défaillant? –

Répondre

11

C'est parce que la méthode recherche la chaîne vers l'arrière, vers le début. En spécifiant la position de départ 0, vous lui dites de commencer par le premier caractère. À moins que le premier caractère ne soit "%", il renverra -1, indépendamment de ce que contient le reste de la chaîne. Utilisez la surcharge LastIndexOf sans l'index de démarrage et vous devriez obtenir le résultat attendu.

+0

contenu pourrait avoir un% en elle, mais le contenu .Substring (0, startIndex); peut-être pas :-) – ThePower

+0

Bien sûr, je suis confiant ... ça ne marche vraiment pas ... c'est comme si "%" est un symbole spécial et nécessite un autre traitement ?? – Manish

+0

Manish: voir ma mise à jour: j'ai réalisé (je pense) quel est votre problème ... –

10

Vous recherchez des occurrences de % mais vous commencez à la position 0 et recherchez en arrière à partir de là. Il n'y a pas de caractère % à la position 0, et c'est pourquoi l'appel LastIndexOf renvoie -1.

Vous devez commencer votre recherche à la fin de la chaîne:

string subString = content.Substring(0, startIndex); 
int nextOpeningComment = subString.LastIndexOf("%"); 
+0

Great..it travaillé .... merci .... – Manish

4

S'il n'y a pas% dans la chaîne, puis le retour de -1 est attendu et conception. Il indique que la chaîne demandée n'est pas présente dans la valeur "subString"

+0

Merci ... mais je sais vraiment cette chose ... et il y a% dans la chaîne ... – Manish

3

il n'y a pas de symboles de la fin de la chaîne à partir de 0 essayer

content.LastIndexOf("%"); 
+0

Super ... ça a marché ... merci ... c'était bcoz du 0 !! – Manish

Questions connexes