C#中的Contains與IndexOf的區別
阿新 • • 發佈:2019-01-27
C#中要判斷一個字串是否包含另一個字串,常用的兩種方法是
str.Contains和str.IndexOf
這兩個方法的區別是:
str.Contains和str.IndexOf
這兩個方法的區別是:
Contains是找指定字串是否包含一個字串,返回值的boolean型別,即只有true和false
IndexOf有多個過載,但無論哪個,都是做一定的匹配,然後把匹配的第一個字元的位置返回,返回的是int型別,如果沒找到,那麼返回-1
IndexOf() 查詢字串中指定字元或字串首次出現的位置,返首索引值,如: str1.IndexOf("字"); //查詢“字”在str1中的索引值(位置) str1.IndexOf("字串");//查詢“字串”的第一個字元在str1中的索引值(位置) str1.IndexOf("字",start,end);//從str1第start+1個字元起,查詢end個字元,查詢“字”在字串STR1中的位置[從第一個字元算起]注意:start+end不能大於str1的長度 indexof引數為string,在字串中尋找引數字串第一次出現的位置並返回該位置。如string s="0123dfdfdf";int i=s.indexof("df");這時i==4。 如果需要更強大的字串解析功能應該用Regex類,使用正則表示式對字串進行匹配。 indexof() :在字串中從前向後定位字元和字串;所有的返回值都是指在字串的絕對位置,如為空則為- 1 string test="asdfjsdfjgkfasdsfsgfhgjgfjgdddd"; test.indexof(’d’) =2 //從前向後 定位 d 第一次出現的位置 test.indexof(’d’,1) =2 //從前向後 定位 d 從第三個字串 第一次出現的位置 test.indexof(’d’,5,2) =6 //從前向後 定位 d 從第5 位開始查,查2位,即 從第5位到第7位; lastindexof() :在字串中從後向前定位字元和字串;、 用法和 indexof() 完全相同。 下面介紹 IndexOfAny ||lastindexofany 他們接受字元陣列做為變元,其他方法同上,返回陣列中任何一個字元最早出現的下標位置 如下 char[] bbv={’s’,’c’,’b’}; string abc = "acsdfgdfgchacscdsad"; Response.Write(abc.IndexOfAny(bbv))=1 Response.Write(abc.IndexOfAny(bbv, 5))=9 Response.Write(abc.IndexOfAny(bbv, 5, 3))=9 lastindexofany 同上。 ==================================================================== substring() 用法 string a="aadsfdjkfgklfdglfd" a.substring(5) //擷取從第五位以後的所有字串 a.substring(0,5) //擷取從第0到第5 以後的所有字串