C# 你能解决这个奇怪的问题吗;我在使用字符串IndexOf方法吗?

C# 你能解决这个奇怪的问题吗;我在使用字符串IndexOf方法吗?,c#,.net,html,string,indexof,C#,.net,Html,String,Indexof,我有一段代码,它使用StreamReader从文件中读取HTML,然后调用ReadToEnd()函数。HTML存储为字符串 然后我把这行代码称为: string bookmarksBar = HTMLDoc.Substring(HTMLDoc.IndexOf(">Bookmarks bar</H3>"), HTMLDoc.IndexOf("</DL><p>")); 我无法理解它为什么在这里结束,因为此时字符串与“”不匹配 下面是HTML的一个较大部分:

我有一段代码,它使用StreamReader从文件中读取HTML,然后调用ReadToEnd()函数。HTML存储为字符串

然后我把这行代码称为:

string bookmarksBar = HTMLDoc.Substring(HTMLDoc.IndexOf(">Bookmarks bar</H3>"), HTMLDoc.IndexOf("</DL><p>"));
我无法理解它为什么在这里结束,因为此时字符串与
“”
不匹配

下面是HTML的一个较大部分:

jNpXrXKt4WFgn/KY1J1yBg874KWb0Vmr+BSttzgKt3LuBAAAAAElFTkSuQmCC\"></A>\r\n    </DL><p>\r\n    <DT><H3 ADD_DATE=\"1282073650\" LAST_MODIFIED=\"1301438557\">Link 1</H3>\r\n    <DL><p>\r\n        <DT><H3 ADD_DATE=\"1282073650\" LAST_MODIFIED=\"1286905747\">Link2</H3>\r\n        <DL><p>\r\n            <DT><A HREF=\"http://creators.xna.com/en-GB/create_detail#tour_four\" ADD_DATE=\"1282073650\" ICON=\"data:image/png;base64,iVBORw0KGgoAAA"

jNpXrXKt4WFgn/KY1J1yBg874KWb0Vmr+bstzgkt3lubaaaaelftksuqmcc\”>\r\n\r\n链接1\r\n\r\n链接2\r\n\r\n您回答了自己的问题

the second argument is the length
第二个参数是而不是endIndex

此外,通过调用此函数的方式,您最终将在结果中获得文本
“>书签栏”
。请尝试以下操作:

// You could make the part after the + a constant. I'm using s.Length to demonstrate 
// where the number would come from.
var startIndex = HTMLDoc.IndexOf(">Bookmarks bar</H3>") + ">Bookmarks bar</H3>".Length;
var endIndex = HTMLDoc.IndexOf("</DL><p>");
string bookmarksBar = HTMLDoc.Substring(startIndex, endIndex - startIndex);
//您可以将+后面的部分设为常量。我用s.Length来演示
//这个数字来自哪里。
var startIndex=HTMLDoc.IndexOf(“>Bookmarks bar”)+“>Bookmarks bar.Length;
var endIndex=HTMLDoc.IndexOf(“”);
字符串bookmarksBar=HTMLDoc.Substring(startIndex,endIndex-startIndex);

第二个参数是通过索引移动的字符数,因此子字符串(0,4)取前四个字符,子字符串(4,8)代替Java子字符串逻辑不带字符4-8,它返回字符4-12。

尝试:

string bookmarksBar=HTMLDoc.Substring(HTMLDoc.IndexOf(“>Bookmarks bar”)、HTMLDoc.IndexOf(“”)-HTMLDoc.IndexOf(“>Bookmarks bar”);
尝试以下操作:

// You could make the part after the + a constant. I'm using s.Length to demonstrate 
// where the number would come from.
var startIndex = HTMLDoc.IndexOf(">Bookmarks bar</H3>") + ">Bookmarks bar</H3>".Length;
var endIndex = HTMLDoc.IndexOf("</DL><p>");
string bookmarksBar = HTMLDoc.Substring(startIndex, endIndex - startIndex);
int start = HTMLDoc.IndexOf(">Bookmarks bar</H3>");
string bookmarksBar = HTMLDoc.Substring(index, HTMLDoc.IndexOf("</DL><p>")-start);
intstart=HTMLDoc.IndexOf(“>书签栏”);
字符串bookmarksBar=HTMLDoc.Substring(索引,HTMLDoc.IndexOf(“”)-start);