asp.net的IndexOf,LastIndexOf,IndexOfAny和LastIndexOfAny的用法
2024-07-10 13:23:46
供稿:网友
 
定位子串是指在一个字符串中寻找其中包含的子串或者某个字符,下面,逐一给大家详细介绍。 
  一、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用于搜索在一个字符串中,出现在一个字符数组中任意字符最后一次出现的位置。