public static int IndexOf(string chars,string str) {
            for (int i = 0; i < str.Length; i++)
            {
                if (str[i] != chars[0]) continue;
                if (i + (chars.Length ) > str.Length)
                    return -1;
                if (str.Substring(i, chars.Length) == chars) return i;
            }
            return -1;
        }

    static void Main(string[] args)
        {
            Stopwatch sw = new Stopwatch();
            sw.Start();
            for (int i = 0; i < 200000; i++)
                IndexOf("abcsdas", "bcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcda");
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds);
            sw = new Stopwatch();
            sw.Start();
            for (int i = 0; i < 200000; i++)
                "bcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcda".IndexOf("abcsdas");
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds);

            Console.Read();
        }

  

 

这个方法对重复比较多的字符串自然是表现很差的

 

posted on 2017-06-21 11:11  xuelei被占用了  阅读(206)  评论(0编辑  收藏  举报