我有一个字符串如string s="?type=1&abc=2&def=3",我想做的是如果存在&def就只取前面的?type=1&abc=2
            if (s.IndexOf("&def")>0) { 
            s=s.Split('&def')[0].ToString();
            }
但是SPLIT好象只能是用一个字符分割,象这样多字符的它说不行。怎么办啊

解决方案 »

  1.   

    你这个字符串时URL传过来的?
      

  2.   

    是的,一个URL, string s = Request.Url.Query;
      

  3.   

    string def="";
    if(Request.QueryString["def"]!=null)
        def = Request.QueryString["def"].ToString();
    为什么要去截取呢???这样就可以获取到的啊
      

  4.   

    string s = "?type=1&abc=2&def=3";
            if (s.Contains("&def"))
            {
                Response.Write(s.Substring(0, s.Length - s.Split('&').ToArray().Last().Length));
            }
      

  5.   

    string s ="?" + Request["type"] + Request["abc"]; 
      

  6.   

            string s = "?type=1&abc=2&def=3";
            Regex regex = new Regex(@".+?(?=&def)");
            string ss = regex.Match(s).Value;
      

  7.   

    4楼你的方法不好使,因为&def不一定是最后的,完整的URL可能是"?type=1&abc=2&def=3&gih=8";
      

  8.   

    int index = s,indexof*"&def=") ;
    if(index >-1)
      s.substring(0,index);  可以取出来吧
      

  9.   

    int index = s.indexof("&def=") ;
      

  10.   

    string s = "?type=1&abc=2&def=3&gih=8";
            if (s.Contains("&def"))
            {
                Response.Write(s.Substring(0,s.IndexOf("&def=")));
            }
      

  11.   

    可以啦,我用wxr0323姐姐的方法。谢谢。