Как получить последний индекс "%" в строке? - PullRequest
0 голосов
/ 26 августа 2009

Как получить последний индекс "%" в строке в .NET? Я пытался

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

Это всегда дает мне -1. ​​

Здесь subString Я получаю это:

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

Любая помощь / предложения приветствуются.

Ответы [ 4 ]

11 голосов
/ 26 августа 2009

Это потому, что метод ищет строку назад, к началу. Указывая начальную позицию 0, вы указываете, чтобы она начиналась с первого символа. Если первый символ не является «%», он вернет -1, независимо от того, что содержит остальная часть строки. Используйте перегрузку LastIndexOf без начального индекса, и вы получите ожидаемый результат.

10 голосов
/ 26 августа 2009

Вы ищете вхождения %, но вы начинаете с позиции 0 и оттуда ищите назад . В позиции 0 нет символа %, и поэтому вызов LastIndexOf возвращает -1.

Вам нужно начать поиск в конце строки:

string subString = content.Substring(0, startIndex);
int nextOpeningComment = subString.LastIndexOf("%");
4 голосов
/ 26 августа 2009

Если в строке нет%, то ожидается возврат -1 и By Design. Это указывает на то, что запрошенная строка отсутствует в значении "subString"

3 голосов
/ 26 августа 2009

нет символов с конца строки, начиная с 0 try

content.LastIndexOf("%");
...