Indexof的实现

代码
 1   class Program
 
2    {
 
3        static void Main(string[] args)
 
4        {
 
5            string str1 = "";
 
6            string str2 = "";
 
7
 
8            Console.WriteLine(str1.IndexOf(str2));
 
9            Console.WriteLine(StringIndexOf(str1, str2));
10
11            Console.ReadKey();
12        }
13
14        /**//// <summary>
15        /// 实现字符串的IndexOf 功能 
16        /// </summary>
17        /// <param name="strMain"></param>
18        /// <param name="strExtre"></param>
19        /// <returns></returns>
20        static int StringIndexOf(string strMain, string strExtre)
21        {
22            if (strMain == null || strExtre == null)
23                throw new Exception("String cannot be null.");
24            if (strExtre.Length == 0return 0;
25            if (strExtre.Length > strMain.Length) return -1;
26
27            //返回值
28            int index = -1;
29            //获取附加字符串首字符 
30            char c = strExtre[0];
31            //在主字符串中搜索首字符
32            for (int i = 0; i < strMain.Length; i++)
33            {
34                //不匹配的话继续搜索
35                if (false == strMain[i].Equals(c)) continue;
36
37                int Length = 1;
38                //从次首字符开始比较
39                for (int j = 1; j < strExtre.Length; j++)
40                {
41                    if ((i + j) >= strMain.Length) break;
42                    if (false == strMain[i + j].Equals(strExtre[j])) break;
43                    Length++;
44                }
45                //条件匹配即退出
46                if (Length == strExtre.Length)
47                {
48                    index = i;
49                    break;
50                }
51            }
52
53            return index;
54        }
55    }
原文地址:https://www.cnblogs.com/hubcarl/p/1680187.html