由0和1组成的字符串,连续是“1”的算为一单元,比如下面字串例子里共有四个单元,分别为“1111111”、“111”、“111111”和“111111111111111111”。需解决的问题是:怎样编程计算该字串中的单元数量,并标注每个单元的起止位置(用数组表示,如第一个单元的起止位置是2和8,实际问题“0”和“1”的排列是没有规律的。)字串例子:
        00111111100000000001110000000000011111100011111111111111111100000000000

解决方案 »

  1.   

            private void button1_Click(object sender, EventArgs e)
            {
                Regex R = new Regex("1+");
                MatchCollection M = R.Matches("00111111100000000001110000000000011111100011111111111111111100000000000");
                StringBuilder S = new StringBuilder();
                foreach (Match m in M)
                {
                    S.Append(string.Format("开始位置:{0},结束位置:{1}\r\n字符串:{2}\r\n",m.Index.ToString(),
                        (m.Index+m.Length).ToString(),m.Value ));
                }
                MessageBox.Show(S.ToString());
            }
      

  2.   


    谢谢高手alifriend!程序中只有一点小问题,把foreach中的(m.Index+m.Length).ToString()改成((m.Index+m.Length)-1).ToString()就完全对了。再次感谢!