K3

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
 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    }
posted on 2007-04-16 13:51  K3  阅读(880)  评论(0编辑  收藏  举报