for (int i = 0; i < links.Count; i++)
{
int f = links[i].IndexOf("http");
}
links
List<string>
是
例如,在索引0 I具有:http://test/107281.shtml#34
我想從僅此該鏈接提取: http://test/107281.shtml
而不在端#34。爲什麼在使用indexOf的時候所有的時間都是0?
但是爲什麼f始終返回0?
for (int i = 0; i < links.Count; i++)
{
int f = links[i].IndexOf("http");
}
links
List<string>
是
例如,在索引0 I具有:http://test/107281.shtml#34
我想從僅此該鏈接提取: http://test/107281.shtml
而不在端#34。爲什麼在使用indexOf的時候所有的時間都是0?
但是爲什麼f始終返回0?
一個字符串的第一個字符位於索引0,所以在字符串http://test/107281.shtml#34
爲http
是其位於索引0的字符串中的第一件事... 要提取您可以結合使用兩種或正則表達式indexOf("#")
與substring
。
這是正確的....,導致該字符串的「http」開頭指數是0,如果無法找到字符串的IndexOf返回-1 ...
我猜你正在尋找的東西,如:
for (int i = 0; i < links.Count; i++)
{
int f = links[i].IndexOf("#");
}
這應該給你第一個#
的索引。
IndexOf("http")
應該爲您提供0
,因爲http
位於索引0
。
爲了獲取字符串你正在尋找:使用您的演示串HERE
for (int i = 0; i < links.Count; i++)
{
var url = links[i].Substring(0, links[i].IndexOf("#"));
}
例。
indexOf()方法返回字符串中第一次出現指定值的位置。
var str = "Hello world, welcome to the universe.";
var n = str.indexOf("welcome");
輸出將是:13 這是位置編號。
接下來,您將刪除您想要刪除的位置。
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);
}
那麼你正在尋找字符串中第一次出現'http'。如果所有的字符串都以'http'開始,爲什麼它會返回0以外的任何內容?也許你應該使用'IndexOf(「#」)'而不是? –
由於'http:// test/107281.shtml'中''0'索引中第一次出現'http'。 –