写两个方法分别计算string和stringbuilder100次拼装字符串所消耗的时间刚学C#不是很会,请教下

解决方案 »

  1.   

    ***************************************************      
            DateTime timeStart = DateTime.Now;
            String s = "Chinese";
            for (int i = 0; i < 100; i++)
            {
                s += "People";
            }
            DateTime timeEnd = DateTime.Now;
            TimeSpan sp = timeEnd - timeStart;
            Console.Write("拼装字符串所用的时间为:{0}",sp);
    ******************************************************
    这样写可以吗?
      

  2.   

    HOHO,临时写了一个只是大概结果。其中未准确的度量循环的开销:
    输出的结果是:633564039022343750
    633564039111875000
    633564039112031250
    D12:89531250
    D23:156250
    D12/D23:573
    输出的值分别是:
    开始时间(Ticks)
    第一项测试结束时间(第二项测试开始时间)(Ticks)
    第二项测试结束时间(Ticks)
    D12:第一次测试的总时长
    D23:第二次测试的总时长
    D12/D23:第一次测试时间比上(除以)第二次测试时间我之所以使用Ticks时间是使用普通的时间格式无法表示出这么精确的时间差。对了上面的测试结果是我进行了10000次拼装的结果。100次根据看不出区别。
     class Program
        {        public static string A;
            public static StringBuilder BA;        public static void Test1(int K)
            {
                string ret = "";
                for (int i = 0; i < K; i++)
                {
                    ret += A;
                }
                //ret是拼装结果
            }        public static void Test2(int K)
            {
                string ret = "";
                for (int i = 0; i < K; i++)
                {
                    BA.Append(A);
                }
                ret = BA.ToString();
                //ret是拼装结果
            }
            static void Main(string[] args)
            {            //A为100个字母K;
                A = new String('K', 100);
                BA = new StringBuilder();            int K = 10000;            //输出当前时间
                long l1, l2, l3;
                l1 = DateTime.Now.Ticks;
                Console.WriteLine(l1.ToString());
                Test1(K);            l2 = DateTime.Now.Ticks;
                Console.WriteLine(l2.ToString());            Test2(K);
                l3 = DateTime.Now.Ticks;
                Console.WriteLine(l3.ToString());            long d12, d23;
                d12 = l2 - l1;
                d23 = l3 - l2;            Console.WriteLine("D12:{0}", d12);
                Console.WriteLine("D23:{0}", d23);            Console.WriteLine("D12/D23:{0}", d12 / (float)d23);
                Console.ReadLine();
            }
    }
      

  3.   

    那我改成SrtingBuilder的,嘿嘿
            DateTime timeStart = DateTime.Now; 
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < 100; i++) 
            { 
                sb.Append("People"); 
            } 
            DateTime timeEnd = DateTime.Now; 
            TimeSpan sp = timeEnd - timeStart; 
            Console.Write("拼装字符串所用的时间为:{0}",sp);
      

  4.   

    还有个小问题:
    先判断输入字符串的Length>=9,再判断头三个字母==“HBR”,后三个字母==”exe”
    (注意大小写),满足条件就 输出“符合”,不满足就输出“匹配失败”怎么弄啊
      

  5.   


    public bool TestResult(string s)
    {
       return s.Length>=9 && s.SubString(0,3).ToUpper()=="HBR" && s.SubString(s.Length-3,3).ToUpper()=="EXE";
    }
    在任何你要测试的地方,假设你要测试的字符串名称为:strResult;if(TestResult(strResult))
    {
       Console.WriteLine("符合");
    }
    else
    {
       Console.WriteLine("不符合");
    }