StreamReader sr = new StreamReader(@"E:\1.txt", Encoding.GetEncoding("gb2312"));            ArrayList al = new ArrayList();
            ArrayList al1 = new ArrayList();
            while (sr.EndOfStream != true)
            {
                al.Add(sr.ReadLine());
            }
            for (int i = 0; i < al.Count; i++)
            {
                foreach (Match m in Regex.Matches(Convert.ToString(al[i]), @"\d+\ *"))
                {
                    al1.Add(Convert.ToString(m));
                    Console.WriteLine("{0}",al1);
                }
            }
麻烦帮我分析一下这段代码的结构和含义! 运行Console.WriteLine("{0}",al1)最后输出的不是我要的数字,而是一对字母。
附注:我的1.txt文档的内容是
12.4  543.6  78.454
23.78  567.6  67.4
这是第三段辊子的系数

解决方案 »

  1.   

    al1 他 的类型是一个ArrayList是一个集合,你直接输出他可能会行不通的
    for (int i = 0; i < al.Count; i++)
      {
      foreach (Match m in Regex.Matches(Convert.ToString(al[i]), @"\d+\ *"))
      {
      al1.Add(Convert.ToString(m));
     }
      }for(int j=0;j<all.ToArray().Length;j++)
    {
     Console.WriteLine("{0}",al1.ToArray()[i]);
    }你试一下
      

  2.   

    StreamReader sr = new StreamReader(@"E:\1.txt", Encoding.GetEncoding("gb2312"));            ArrayList al = new ArrayList();
                ArrayList al1 = new ArrayList();
                while (sr.EndOfStream != true)
                {
                    al.Add(sr.ReadLine());
                }
                for (int i = 0; i < al.Count; i++)
                {
                    foreach (Match m in Regex.Matches(Convert.ToString(al[i]), @"\d+\ *"))
                    {
                        al1.Add(m.Value);
                        Console.WriteLine("{0}", m.Value);
                    }
                }
      

  3.   

     al1.Add(Convert.ToString(m.Value));
      

  4.   

    al1.Add(Convert.ToString(m.Value));
    你添加的是M,而不是m.value