为什么我在使用indexOf的时候总是得到0

本文关键字:候总 indexOf 为什么 | 更新日期: 2023-09-27 18:08:50

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

links = List<string>
例如,在索引0我有:http://test/107281.shtml#34
我想从这个链接中提取的只有:http://test/107281.shtml末尾没有#34。

开头为什么总是返回0呢?

为什么我在使用indexOf的时候总是得到0

没错....

字符串中的第一个字符位于索引0,因此在字符串http://test/107281.shtml#34中,http是字符串中的第一件事,位于索引0…要提取,您可以使用regex或indexOf("#")substring组合使用。

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

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

输出为:13这是位置号

接下来从你想要删除的位置移除

我猜你在找这样的东西:

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

这将给出第一个#的索引。
IndexOf("http")应该给你0,因为http的索引是0
获取您正在寻找的字符串:

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

        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);
        }