首页 > 编程笔记 > C#笔记 阅读:9

C# IndexOf()和LastIndexOf()的用法(附带实例)

C# 的 string 类提供了两种查找字符串索引的方法,即 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)

例如,查找字符 '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

从运行结果可以看出,由于字符串中只有两个“r”,所以程序输出了这两个“r”的索引位置,第三次搜索时已经找不到“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)

例如,查找字符 'e' 在字符串 str 中最后一次出现的索引位置,代码如下:
string str = "We are the world";
int size = str.LastIndexOf('e'); // size的值为9
字符 'e' 在字符串 str 中最后一次出现的索引位置如下图所示。


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

相关文章