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 == 0) return 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 }
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 == 0) return 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 }