定位子串是指在一个字符串中寻找其中包含的子串或者某个字符。在String类中,常用的定位子串和字符的方法包括IndexOf/LastIndexOf及IndexOfAny/LastIndexOfAny,下面进行详细介绍。

1.IndexOf/LastIndexOf

IndexOf方法用于搜索在一个字符串中,某个特定的字符或者子串第一次出现的位置,该方法区分大小写,并从字符串的首字符开始以0计数。如果字符串中不包含这个字符或子串,则返回-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)

在上述重载形式中,其参数含义如下:

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相同,不再赘述。

2.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用于搜索在一个字符串中,出现在一个字符数组中任意字符最后一次出现的位置。

------------------------------------------------------------------------------

string str = "liminandlxf";

//从str第0个字符起,查找8个字符,

//查找“and”在字符串STR中的位置[从第一个字符算起]注意:start+end不能大于str的长度

//即在str中从第0个字符开始取8个字符得到liminand,然后在这个里面查找and的开始位置

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字符数组中的任意字符在str中第一次出现的位置
            int pos = str.IndexOfAny(anyof);      //返回0,第一个出现的是l
            MessageBox.Show(pos.ToString());
            int pos2 = str.LastIndexOfAny(anyof); //返回10,查找在anyof字符数组中的任意字符
                                                                              //在字符串str中最后出现的位置
            MessageBox.Show(pos2.ToString());

转载于:https://www.cnblogs.com/a-mumu/p/4740172.html

C# indexof和indexofany区别(转)相关推荐

  1. indexOf和lastIndexOf的区别

    indexOf和lastIndexOf的概念 一:两者的概念 1.indexOf:报告指定字符在此实例中的第一个匹配项的索引.搜索从指定字符位置开始,并检查指定数量的字符位置. 2.lastIndex ...

  2. JavaScript中的 inludes 和 indexOf 方法 | 判断字符串或数组中是否存在对应的元素| 相同点与不同点 | 代码详解

    目录 JavaScript中的inludes和indexOf方法 1.数组中的includes和indexOf方法比较 1.1 函数返回值的不同 1.2 函数第二个参数--开始查找的位置 1.3 in ...

  3. JavaScript: indexOf 详解、实例与应用

    JavaScript indexOf    返回 String 对象中第一次出现的子字符串的字符位置.  JavaScript indexOf格式 strObj.indexOf(subString, ...

  4. C#编程(四十四)----------string和stringbuilder

    System.String类 首先string类是静态的,System.String是最常用的字符串操作类,可以帮助开发者完成绝大部分的字符串操作功能,使用方便. 1.比较字符串 比较字符串是指按照字 ...

  5. c# string总结

    1.string 是引用类型,其具有不可变性 我们一般认为的将内存分为五个区域.其中程序员常用的有三个,即栈.堆,静态存储区域. 其中值类型的值存储在栈中,如int类型,而引用类型的值存储在堆中. s ...

  6. C#字符串截取学习总结

    C#几个经常用到的字符串截取 http://www.cnblogs.com/lykbk/archive/2012/06/28/lyk1232132.html 一. 1.取字符串的前i个字符 (1)st ...

  7. JavaScript一些常用 API整理汇总

    JavaScript一些常用 API整理汇总 Array new Set() 数组去重 const arr = [3,4,4,5,4,6,5,7]; console.log(new Set(arr)) ...

  8. js中text方法是啥意识_一盏茶的时间,快速捕获JS中常用的方法(细心整理,持续更新ing)...

    不知不觉上班一周辽-趁着大好周末,小编挣扎着从床上爬起来,决定对前端日常编程中常用到的一些方法做一个系统的整合. 有些人或许会觉得忘了百度就完事儿,no no no!这事儿小编真的亲践过好多次,百度一 ...

  9. doctrine find的对象转换成数组_「ES6基础」Array数组的新方法(上)

    在日常工作中我们经常会与数组打交道,因此需要熟练掌握数组操作的相关方法,ES6中关于数组的操作,又给我们带来了哪些惊喜呢,Array数组操作又添加了哪些新方法? 本篇文章将从以下几个方面进行介绍: A ...

最新文章

  1. 用Python如何查快递?
  2. linux笔记 1-13-软件安装
  3. 0-1背包-分支限界
  4. 打印折痕方向(二叉树应用)
  5. War of Inazuma (Easy Version) 阅读理解-n维超立方体-二进制-longlong右移32位
  6. Android 广播机制以及用法详解 (转)
  7. dedecms--在后台增加会员添加
  8. linux新硬盘分区及格式化和挂载分区到目录的方法
  9. 10年资深面试官直言:80%人面试Java都会止步于此!
  10. java 接口类型_Java-从接口类型而不是类声明
  11. linux windows市场占有率,Windows 10市场份额罕见倒退:Win7也跌了 Linux暴增111%
  12. python教程视频全套下载-Python爬虫视频教程全集下载
  13. INS/GNSS组合导航(一)-绪论
  14. 电阻电路的等效变化(Ⅰ)
  15. 微信小程序开发之——婚礼邀请函-邀请函页面(4.3)
  16. 企业微信批量添加好友
  17. projece修改工期_project里工期如何更改为自然日
  18. 计算机网络自顶向下方法 第三章 运输层 3.6 拥塞控制原理
  19. Halcon形状模板匹配
  20. excel数字排序1后面是2而不是10

热门文章

  1. 谈谈document.ready和window.onload的区别
  2. Android ViewPager和Fragment实现顶部导航界面滑动效果
  3. 使用Python实现Hadoop MapReduce程序
  4. C语言实现:将一个字符串插入到另一个字符串的指定位置
  5. springmvc二十二:annotation-driven标签
  6. java:接口和抽象
  7. 前端一HTML:四: html标签
  8. 数据结构之图(2-2)【邻接多重表】适用于无向图
  9. 《C++面向对象高效编程(第2版)》——2.16 识别成员函数的目标对象
  10. hdu 杭电 1045 Fire Net