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
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55