C# indexof和indexofany区别(转)
定位子串是指在一个字符串中寻找其中包含的子串或者某个字符。在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());
C# indexof和indexofany区别(转)的更多相关文章
- String中的Indexof,LastIndexOf, Indexofany,LastIndexOfAny 的区别
本文转载自 http://www.cnblogs.com/qinying/archive/2008/09/22/1295730.html 定位子串是指在一个字符串中寻找其中包含的子串或者某个字符.在S ...
- IndexOf、IndexOfAny 、Remove
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 几种String对象方法的区别
1.在String对象方法中,发现.slice()方法和.substring()方法的作用几乎相同,都是根据起始索引返回截取得到的字符串.经过查阅资料和实测得到区别: 正常情况下索引都为正值,返回值为 ...
- includes与indexOf
indexOf(a,b)是在es6之前常用的判断数组/字符串内元素是否存在的api,接收两个参数,第一个a代表要被查找的元素,必填.第二个代表从数组的某个坐标开始查找,可选 在数组中 通过indexO ...
- C#分割字符串
命名空间:System.String.Split 程序集:mscorlib( mscorlib.dll) 简单实例: string before = "12,50,30"; str ...
- string应用
今天在网上搜了一些资料. C# string类应用 判断是否包含子串 想要判断一个字符串中是否包含某个子串,可以用Contains方法来实现: ? public bool Contains (stri ...
- C# String字符串
C#(静态String类) C#中提供了比较全面的字符串处理方法,很多函数都进行了封装为我们的编程工作提供了很大的便利.System.String是最常用的字符串操作类,可以帮助开发者完成绝大部分的字 ...
- C#编程(四十四)----------string和stringbuilder
System.String类 首先string类是静态的,System.String是最常用的字符串操作类,可以帮助开发者完成绝大部分的字符串操作功能,使用方便. 1.比较字符串 比较字符串是指按照字 ...
- Hadoop开发相关问题
总结自己在Hadoop开发中遇到的问题,主要在mapreduce代码执行方面.大部分来自日常代码执行错误的解决方法,还有一些是对Java.Hadoop剖析.对于问题,通过查询stackoverflow ...
随机推荐
- [LeetCode]66. 加一(数组)
###题目 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 示例 ...
- Java读取excel 支持xls 和 xlsx格式
1.工具类public class InExcelTool { //根据指定位置单独读取一个 public static String getContent(String file, int page ...
- Shell编程(5)
文本处理三剑客 在 Shell 下使用这些正则表达式处理文本最多的命令有下面几个工具: 命令 描述 grep 默认不支持扩展表达式,加-E ...
- Vue iview Tree组件实现文件目录-基础实现
注册页面路由 router/router.js { path: 'folder_tree', name: 'folderTree', component: () => import('@/vie ...
- 跟我一起学Redis之Redis概述
背景 技术的更新迭代,是程序员最最最头大的事,总是在每个网络角落中有感慨声:学不动啦: 其实新技术并不是凭空而出,而是随着业务推进.数据驱动.技术积累促使开发者的不断探索和实践,最终横空出世--&qu ...
- 阅读源码的利器——Intellij-IDEA-Replace-in-Path-使用技巧
前言 讲讲宇宙排名第二的开发工具-–IDEA的使用技巧. 搜索/替换 技巧 阅读源码的利器 1.Match case: 如果勾选该按钮,搜索时将区分大小写字母. 2.Preserve case ...
- axios之post提交
axios官网地址:https://github.com/axios/axios post提交到后台需要做相对应的处理 使用URLSearchParams可以让post 数据提交到后台 对应gitHu ...
- hadoop集群测试
master操作: [admin@master ~]$ start-all.sh [admin@master ~]$ jps [admin@master ~]$ hadoop fs -mkdir /i ...
- Python-如何在一个for循环中迭代多个可迭代对象?
案例: 某班学生期末考试成绩,语文.数学.英语分别存储在3个列表中,同时迭代三个列表.,计算每个学生的总分(并行) 某年级有4个班,某次英语成绩分别记录在4个列表中,依次迭代每个列表,统计全年级高于9 ...
- 概率派VS贝叶斯派
机器学习中的MLE和MAP两大学派的争论: 频率学派 - Frequentist - Maximum Likelihood Estimation (MLE,最大似然估计): 频率学派认为世界是确定的, ...