C#实现String.IndexOf功能 查找字符串

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        /// 
15        /// 实现字符串的IndexOf 功能 
16        /// 

17        /// 
18        /// 
19        /// 

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    }

你可能感兴趣的:(Asp.net/C#,c#,null,string,c)