C# IndexOf方法学习

1,507 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第18天,点击查看活动详情

前言

今天我们来学习一下关于indexOf这个方法,我们知道数组或者字符串中,我们都会用到indexOf这个方法查找指定数据的位置,今天我们就来学一下这个知识,用过的同学可以忽略,这篇文章主要是针对不会的同学,那么我们今天就来学一下这个知识,创作不易,点赞关注评论转发,大家顺便点点赞吧,你的点赞收藏关注,是我写文章的动力,栓Q啦。

ceeb653ely1g1ws2e1kjjj20du0f7q8r.jpg

indexOf简单示范

indexOf对于数组和字符串都是很好用的,对于数组,我们可以查具体某个字符串位置,对于字符串我们可以查对应的字符位置

具体方法

 该示例调用方法的以下三个重载 IndexOf 来查找字符串数组中的字符串索引:
 IndexOf(Array, Object),用于确定字符串数组中字符串“the”的第一个匹配项。
 IndexOf(Array, Object, Int32),用于确定字符串数组的第四个元素中字符串“the”的第一个匹配项。
 IndexOf(Array, Object, Int32, Int32),用于确定字符串数组中字符串“the”的第一个匹配项,该字符串与数组末尾匹配之后的元素。

简单使用

       var array =['REG', '2018', '2018'];
       array.indexOf(‘REG') // 0
       array.indexOf(‘R') // -1
       array.indexOf('2018′) // 1
       array.indexOf(2018) // -1
       arr.indexOf(‘orange') 输出 0 因为 ‘orange' 是数组的第 0 个元素,匹配到并返回下标。
       arr.indexOf(‘o') 输出 -1 因为此方法不会在每一个元素的基础上再次执行 indexOf 匹配。
       arr.indexOf('2016′) 输出 1 因为此方法从头匹配直到匹配到时返回第一个数组元素的下表,而不是返回全部匹配的下标。
       arr.indexOf(2016) 输出 -1 注意:这里不会做隐式类型转换。

查找字串中指定字符或字串首次出现的位置,返首索引值,如:

        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));
       Response.Write(abc.IndexOfAny(bbv, 5));
       Response.Write(abc.IndexOfAny(bbv, 5, 3));
       lastindexofany 同上。

总结

这篇文章比较简单,只是简单的学习一下,对它有更多的认识,在有需求的时候最起码有路子,虽然很简单,但是也是可以学到东西的,我们学习了新的知识,对我们的知识储备及技术又有新的一点点的进步,C#的技术就是先简单再难嘛,积少成多之后才会成长才会进步,我们要不断的学习不断的探索,才能有学习的动力,才会有学习的欲望,创作不易,点赞评论收藏关注,嘿嘿,不喜勿喷!!!!

12354689123110.gif