C# IndexOf()和LastIndexOf()的用法(附带实例)
C# 的 string 类提供了两种查找字符串索引的方法,即 IndexOf() 和 LastIndexOf() 方法:
本节将分别对这两个方法进行详细讲解。
例如,查找字符 'e' 在字符串 str 中第一次出现的索引位置,代码如下:

图 1 字符串str的下标排列
在日常开发工作中,经常会遇到判断一个字符串中是否包含某个字符或者某个子字符串的情况,这时就可以使用 IndexOf() 方法。
【实例】查找字符串“We are the world”中“r”第一、二、三次出现的索引位置,代码如下:
程序运行结果为:
例如,查找字符 'e' 在字符串 str 中最后一次出现的索引位置,代码如下:

图 2 字符 e 在字符串 str 中最后一次出现的索引位置
- IndexOf() 方法返回的是搜索的字符或字符串首次出现的索引位置;
- LastIndexOf() 方法返回的是搜索的字符或字符串最后一次出现的索引位置。
本节将分别对这两个方法进行详细讲解。
C# IndexOf()方法
IndexOf() 方法常用的几种语法格式如下:public int IndexOf(char value) public int IndexOf(string value) public int IndexOf(char value,int startIndex) public int IndexOf(string value,int startIndex) public int IndexOf(char value,int startIndex,int count) public int IndexOf(string value,int startIndex,int count)
- value:要搜索的字符或字符串;
- startIndex:搜索起始位置;
- count:要检查的字符位置数;
- 返回值:如果找到字符或字符串,则为 value 从零开始的索引位置;如果未找到字符或字符串,则为 -1。
例如,查找字符 'e' 在字符串 str 中第一次出现的索引位置,代码如下:
string str = "We are the world"; int size = str.IndexOf('e'); // size的值为 1理解字符串的索引位置,需要对字符串的下标有所了解。在计算机中,string 对象是用数组表示的。字符串的下标是 0~Length-1。在上面的代码中,字符串 str 的下标排列如下图所示。

图 1 字符串str的下标排列
在日常开发工作中,经常会遇到判断一个字符串中是否包含某个字符或者某个子字符串的情况,这时就可以使用 IndexOf() 方法。
【实例】查找字符串“We are the world”中“r”第一、二、三次出现的索引位置,代码如下:
static void Main(string[] args) { string str = "We are the world"; // 创建字符串 int firstIndex = str.IndexOf('r'); // 获取字符串中“r”第一次出现的索引位置 // 获取字符串中“r”第二次出现的索引位置,从第一次出现的索引位置之后开始查找 int secondIndex = str.IndexOf('r', firstIndex + 1); // 获取字符串中“r”第三次出现的索引位置,从第二次出现的索引位置之后开始查找 int thirdIndex = str.IndexOf('r', secondIndex + 1); // 输出三次获取的索引位置 Console.WriteLine("r第一次出现的索引位置是:" + firstIndex); Console.WriteLine("r第二次出现的索引位置是:" + secondIndex); Console.WriteLine("r第三次出现的索引位置是:" + thirdIndex); Console.ReadLine(); }程序中,第 6 行代码中使用 firstIndex+1 作为起始查找位置,在第 8 行代码中使用 secondIndex+1 作为起始查找位置。
程序运行结果为:
r第一次出现的索引位置是:4
r第二次出现的索引位置是:13
r第三次出现的索引位置是:-1
C# LastIndexOf() 方法
LastIndexOf() 方法常用的几种语法格式如下:public int LastIndexOf(char value) public int LastIndexOf(string value) public int LastIndexOf(char value,int startIndex) public int LastIndexOf(string value,int startIndex) public int LastIndexOf(char value,int startIndex,int count) public int LastIndexOf(string value,int startIndex,int count)
- value:要搜索的字符或字符串;
- startIndex:搜索起始位置;
- count:要检查的字符位置数;
- 返回值:如果找到字符或字符串,则为 value 从零开始的索引位置;如果未找到字符或字符串,则为 -1。
例如,查找字符 'e' 在字符串 str 中最后一次出现的索引位置,代码如下:
string str = "We are the world"; int size = str.LastIndexOf('e'); // size的值为9字符 'e' 在字符串 str 中最后一次出现的索引位置如下图所示。

图 2 字符 e 在字符串 str 中最后一次出现的索引位置