C# indexof和indexofany区别(转)
定位子串是指在一個(gè)字符串中尋找其中包含的子串或者某個(gè)字符。在String類(lèi)中,常用的定位子串和字符的方法包括IndexOf/LastIndexOf及IndexOfAny/LastIndexOfAny,下面進(jìn)行詳細(xì)介紹。
1.IndexOf/LastIndexOf
IndexOf方法用于搜索在一個(gè)字符串中,某個(gè)特定的字符或者子串第一次出現(xiàn)的位置,該方法區(qū)分大小寫(xiě),并從字符串的首字符開(kāi)始以0計(jì)數(shù)。如果字符串中不包含這個(gè)字符或子串,則返回-1。常用的重載形式如下所示。
(1)定位字符:
int IndexOf(char value)
int IndexOf(char value, int startIndex)
int IndexOf(char value, int startIndex, int count)
(2)定位子串:
int IndexOf(string value)
int IndexOf(string value, int startIndex)
int IndexOf(string value, int startIndex, int count)
在上述重載形式中,其參數(shù)含義如下:
value:待定位的字符或者子串。
startIndex:在總串中開(kāi)始搜索的其實(shí)位置。
count:在總串中從起始位置開(kāi)始搜索的字符數(shù)。
下面的代碼在“Hello”中尋找字符‘l’第一次出現(xiàn)的位置。
代碼4-7?使用IndexOf尋找字符第一次出現(xiàn)位置:Default.aspx.cs
1.????? String s=”Hello”;
2.????? int I = s.IndexOf(‘l’));?????????????? //2
同IndexOf類(lèi)似,LastIndexOf用于搜索在一個(gè)字符串中,某個(gè)特定的字符或者子串最后一次出現(xiàn)的位置,其方法定義和返回值都與IndexOf相同,不再贅述。
2.IndexOfAny/LastIndexOfAny
IndexOfAny方法功能同IndexOf類(lèi)似,區(qū)別在于,它可以搜索在一個(gè)字符串中,出現(xiàn)在一個(gè)字符數(shù)組中的任意字符第一次出現(xiàn)的位置。同樣,該方法區(qū)分大小寫(xiě),并從字符串的首字符開(kāi)始以0計(jì)數(shù)。如果字符串中不包含這個(gè)字符或子串,則返回-1。常用的IndexOfAny重載形式有3種:
(1)int IndexOfAny(char[]anyOf);
(2)int IndexOfAny(char[]anyOf, int startIndex);
(3)int IndexOfAny(char[]anyOf, int startIndex, int count)。
在上述重載形式中,其參數(shù)含義如下:
(1)anyOf:待定位的字符數(shù)組,方法將返回這個(gè)數(shù)組中任意一個(gè)字符第一次出現(xiàn)的位置。
(2)startIndex:在原字符串中開(kāi)始搜索的起始位置。
(3)count:在原字符串中從起始位置開(kāi)始搜索的字符數(shù)。
下例在“Hello”中尋找字符‘l’第一次和最后一次出現(xiàn)的位置。
代碼4-8?使用IndexOfAny尋找子串第一次和最后一次出現(xiàn)位置: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類(lèi)似,LastIndexOfAny用于搜索在一個(gè)字符串中,出現(xiàn)在一個(gè)字符數(shù)組中任意字符最后一次出現(xiàn)的位置。
?
------------------------------------------------------------------------------
??????????? string str = "liminandlxf";
??????????? //從str第0個(gè)字符起,查找8個(gè)字符,
???????????//查找“and”在字符串STR中的位置[從第一個(gè)字符算起]注意:start+end不能大于str的長(zhǎng)度
???????????//即在str中從第0個(gè)字符開(kāi)始取8個(gè)字符得到liminand,然后在這個(gè)里面查找and的開(kāi)始位置
??????????? int Pos = str.IndexOf("and", 0,8);? //返回5
??????????? Pos = str.IndexOf("and", 0, 7);???? //返回-1
???????MessageBox.Show(Pos.ToString());
--------------------------------------------------------------------------------
???string str = "liminandlxf";
??????????? char[] anyof = { 'l', 'a', 'f' };
??????????? //查找anyof字符數(shù)組中的任意字符在str中第一次出現(xiàn)的位置
??????????? int pos = str.IndexOfAny(anyof);????? //返回0,第一個(gè)出現(xiàn)的是l
??????????? MessageBox.Show(pos.ToString());
??????????? int pos2 = str.LastIndexOfAny(anyof); //返回10,查找在anyof字符數(shù)組中的任意字符
????????????????????????????????????????????????????????????????????????????? //在字符串str中最后出現(xiàn)的位置
??????????? MessageBox.Show(pos2.ToString());
轉(zhuǎn)載于:https://www.cnblogs.com/a-mumu/p/4740172.html
總結(jié)
以上是生活随笔為你收集整理的C# indexof和indexofany区别(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: IOS开发学习记录第5天之C语言学习
- 下一篇: Jetty实战之 嵌入式Jetty运行w