为什么我在使用indexOf时一直都是0?

时间:2014-06-17 06:24:18

标签: c# .net winforms

for (int i = 0; i < links.Count; i++)
{
    int f = links[i].IndexOf("http");
}

linksList<string>
例如,在索引0中,我有:http://test/107281.shtml#34
我想从这个链接中只提取这个: http://test/107281.shtml最后没有#34。

但是开始为什么f一直都会返回0?

5 个答案:

答案 0 :(得分:3)

没错....,导致这个字符串“http”的起始索引为0,如果找不到字符串,IndexOf将返回-1 ...

答案 1 :(得分:0)

我猜你正在寻找类似的东西:

for (int i = 0; i < links.Count; i++)
{
    int f = links[i].IndexOf("#");
}

这应该为您提供第一个#的索引 由于0位于索引httpIndexOf("http")应该会向您0提供 要获得您正在寻找的字符串:

for (int i = 0; i < links.Count; i++)
{
    var url = links[i].Substring(0, links[i].IndexOf("#"));
}

使用您的演示字符串HERE的示例。

答案 2 :(得分:0)

字符串中的第一个字符串位于索引0处,因此在字符串http://test/107281.shtml#34中,http是字符串中第一个位于索引0处的内容... 要提取,您可以使用正则表达式或indexOf("#")substring结合使用。

答案 3 :(得分:0)

indexOf()方法返回字符串中第一次出现指定值的位置。

var str = "Hello world, welcome to the universe.";
var n = str.indexOf("welcome"); 

输出将是:13 这是位置编号。

接下来,您要删除要删除的位置。

答案 4 :(得分:0)

        List<string> link_list = new List<string> { "http://test/107281.shtml#34", "http://test/107281.shtml#35" };
        List<string> new_list = new List<string>();
        foreach (var item in link_list)
        {
            string bb = item.Substring(0, item.ToString().IndexOf("#"));
            new_list.Add(bb);
        }