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。
但是开始为什么f一直都会返回0?
答案 0 :(得分:3)
没错....,导致这个字符串“http”的起始索引为0,如果找不到字符串,IndexOf将返回-1 ...
答案 1 :(得分:0)
我猜你正在寻找类似的东西:
for (int i = 0; i < links.Count; i++)
{
int f = links[i].IndexOf("#");
}
这应该为您提供第一个#
的索引
由于0
位于索引http
,IndexOf("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);
}