2009-08-26 115 views
0

如何在.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 <%-- 

任何帮助/建议表示赞赏。

+1

你有一个完整的例子吗? (具体而言,在此代码开始之前,内容和startIndex是什么。) – Richard 2009-08-26 14:12:17

+0

在这个假设失败的情况下,“content”和“startIndex”的值是什么? – 2009-08-26 14:17:02

回答

11

这是因为该方法向后搜索字符串,朝向开头。通过指定开始位置0,可以让它从第一个字符开始。除非第一个字符是“%”,否则它将返回-1,无论字符串的其余部分包含什么内容。使用LastIndexOf过载而没有启动索引,您应该得到预期的结果。

+0

内容可能有%,但内容.Substring(0,startIndex);可能不会:-) – ThePower 2009-08-26 14:17:15

+0

Ofcourse我有信心......它真的不工作......是不是像“%”是一个特殊的符号,需要一些其他的治疗? – Manish 2009-08-26 14:17:39

+0

Manish:看到我更新的答案:我意识到(我认为)你的问题是... – 2009-08-26 14:19:49

10

您正在寻找%的事件,但您从位置0开始,并从那里搜索向后。位置0处没有%字符,这就是为什么LastIndexOf调用返回-1。

您需要在字符串的结尾开始搜索:

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

伟大的..工作....谢谢.... – Manish 2009-08-26 14:28:08

4

如果字符串中没有%,则-1的回报预期,并通过设计。它表示请求的字符串不存在于“subString”值中

+0

谢谢...但我真的知道这件事......并有%的字符串... – Manish 2009-08-26 14:14:53

3

没有从0开始的字符串的结束符号尝试

content.LastIndexOf("%"); 
+0

太棒了......它的工作......谢谢....它是0的bcoz! – Manish 2009-08-26 14:28:46

相关问题