我试图删除管道后的所有内容,但我的代码目前正在做的是相反的,它正在删除管道之前的所有内容。我想删除管道后的所有内容,包括是否有空格。这是我试过的代码:
DropDownList WPC1 = DV_InputForm.FindControl("ddl_WPC") as DropDownList;
string WPC_Selected = WPC1.SelectedValue;
string WPC = WPC_Selected.Substring(WPC_Selected.LastIndexOf("|") + 1);
答案 0 :(得分:4)
如果要从字符串中删除子字符串,则应使用String.Remove
,这样可以提高可读性,因为您的意图更明确:
string WPC = WPC_Selected.Remove(WPC_Selected.LastIndexOf("|") + 1);
如果里面没有管道,则返回一个空字符串。如果你想在这种情况下使用完整的字符串,你必须先检查LastIndexOf("|") >= 0
。
答案 1 :(得分:1)
您必须从0
索引开始,然后移至管道标志索引。
string WPC_Selected = "abc|def";
string WPC = WPC_Selected.Substring(0, WPC_Selected.LastIndexOf("|")); //abc
string WPC1 = WPC_Selected.Substring(0, WPC_Selected.LastIndexOf("|") + 1); //abc|
答案 2 :(得分:1)
请尝试
DropDownList WPC1 = DV_InputForm.FindControl("ddl_WPC") as DropDownList;
string WPC_Selected = WPC1.SelectedValue;
string WPC = WPC_Selected.Split("|").Lenght>0?WPC_Selected.Split("|")[0].Trim():string.Empty;
答案 3 :(得分:0)
只需一行:
string WPC = WPC_Selected.Substring(WPC_Selected.IndexOf("|")+1, (WPC_Selected.Length - WPC_Selected.IndexOf("|")-1));