protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            StringBuilder sb = new StringBuilder();
            string s = "a-b:1;a1-b1:2;a2-b2:3;";
            string[] s1= s.Split(';');
            foreach(string s2 in s1)
            {
                string[] s3 = s2.Split(':');
                foreach(string s4 in s3)
                {
                    string[] s5 = s4.Split('-');
                    foreach (string s6 in s5)
                    {
                        sb.Append(s6+",");
                    }
                }
            }
            Response.Write(sb.ToString().TrimEnd(','));
        }
    }

解决方案 »

  1.   

    string[] UnitAddressGroup = UnitAddressAll.Split(';');       //先以分号将字符串分割为3元素的数组,依此类推
    string NowAddress = NowAddressGroup[0];     //获取数组的相应元素即可
      

  2.   

    写不出来就说明没思路其实一句就写完了,搞那么多代码干嘛。
    string[] s = "a-b:1;a1-b1:2;a2-b2:3;".Split({
    "-",
    ":",
    ";"
    }, StringSplitOptions.RemoveEmptyEntries);
      

  3.   


    一句话还有更简单的:string[] s =Regex.Split( "a-b:1;a1-b1:2;a2-b2:3;","\\W");
      

  4.   


    一句话还有更简单的:string[] s =Regex.Split( "a-b:1;a1-b1:2;a2-b2:3;","\\W");楼主需求并没有说是非单词,应该说范围更广了,而且你没有去掉空字符串。能一句写完的方法很多种,看需求。
      

  5.   

    3#正解
    要分割字符串,你需要先确定分隔符string s="a-b:1;a1-b1:2;a2-b2:3";
    string[] s1=s.Split('-',':',';');