定位子串是指在一個字串中尋找其中包含的子串或者某個字元,下面,逐一給大家詳細介紹。
一、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用於搜尋在一個字串中,出現在一個字元數組中任一字元最後一次出現的位置。