asp.net的IndexOf,LastIndexOf,IndexOfAny和LastIndexOfAny的用法

时间:2021-12-10 16:29:37

定位子串是指在一个字符串中寻找其中包含的子串或者某个字符,下面,逐一给大家详细介绍。 

  一、IndexOf/LastIndexOf 

  IndexOf方法用于搜索在一个字符串中,某个特定的字符或者子串第一次出现的位置,该方法区分大小写,并从字符串的首字符开始以0计数。如果字符串中不包含这个字符或子串,则返回-1。常用的重载形式如下所示。 

  ①定位字符 

  int IndexOf(char value) 

  int IndexOf(char value, int startIndex) 

  int IndexOf(char value, int startIndex, int count) 

  ②定位子串 

  int IndexOf(string value) 

  int IndexOf(string value, int startIndex) 

  int IndexOf(string value, int startIndex, int count) 

  在上述重载形式中,其参数含义如下: 

  value:待定位的字符或者子串。 

  startIndex:在总串中开始搜索的其实位置。 

  count:在总串中从起始位置开始搜索的字符数。 

  下面的代码在“Hello”中寻找字符‘l'第一次出现的位置。 

  代码4-7 使用IndexOf寻找字符第一次出现位置:Default.aspx.cs 

  1. String s=”Hello”; 

  2. int I = s.IndexOf(‘l')); //2 

  同IndexOf类似,LastIndexOf用于搜索在一个字符串中,某个特定的字符或者子串最后一次出现的位置,其方法定义和返回值都与IndexOf相同,不再赘述。 

  二、IndexOfAny/LastIndexOfAny 

  IndexOfAny方法功能同IndexOf类似,区别在于,它可以搜索在一个字符串中,出现在一个字符数组中的任意字符第一次出现的位置。同样,该方法区分大小写,并从字符串的首字符开始以0计数。如果字符串中不包含这个字符或子串,则返回-1。常用的IndexOfAny重载形式有3种: 

  (1)int IndexOfAny(char[]anyOf); 

  (2)int IndexOfAny(char[]anyOf, int startIndex); 

  (3)int IndexOfAny(char[]anyOf, int startIndex, int count)。 

  在上述重载形式中,其参数含义如下: 

  (1)anyOf:待定位的字符数组,方法将返回这个数组中任意一个字符第一次出现的位置。 

  (2)startIndex:在原字符串中开始搜索的其实位置。 

  (3)count:在原字符串中从起始位置开始搜索的字符数。 

  下例在“Hello”中寻找字符‘l'第一次和最后一次出现的位置。 

  代码4-8 使用IndexOfAny寻找子串第一次和最后一次出现位置:Default.aspx.cs 

  1.String s = “Hello”; 

  2.char[] anyOf={'H','e','l'}; 

  3.int i1 = s.IndexOfAny(anyOf)); //0 

  4.int i2 = s.LastIndexOfAny(anyOf)); //3 

  同IndexOfAny类似,LastIndexOfAny用于搜索在一个字符串中,出现在一个字符数组中任意字符最后一次出现的位置。