日期:2014-05-19  浏览次数:21016 次

为什么IndexOf("<XXX")查询不出来?
有代码如下:
string   sTmp   =   " <flag> abc </flag> ";
int   i   =   sTmp.IndexOf( " <flag> ");
为什么i=0?
请高手指教!谢谢

------解决方案--------------------
string sTmp = " <flag> abc </flag> ";
int i = sTmp.IndexOf( " <flag> ");
为什么i=0?

-------------
i=0是对的,因为 <flag> 确实位于sTmp的第一个位置,索引从0开始,所以是对的。
如果要查第二个可以从这个i再开始,就可以查到i后面的第一个 <flag> 的位置。
------解决方案--------------------
在C#里的字符串索引开始是0而不是1。
------解决方案--------------------
IndexOf如果查询不出来的话结果应该是-1, 0表示最开始的位置。
------解决方案--------------------
i不等于0才叫怪呢,等于-1才是没有找到
------解决方案--------------------
string sTmp = " <flag> abc </flag> ";
int i = sTmp.IndexOf( " <flag> ");
这个为0 当然是对的了 C#和c++一样 字符串 是从 0位开始计算
IndexOf方法 返回的就是你查询的 字符 或 字符串 在 字符串中出现的第一个位置当然是对的了

string sTmp = "PP <flag> abc </flag> ";
int i = sTmp.IndexOf( " <flag> ");
这里就是2了...