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
}
class Program2
{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
}
