本文转载自 http://www.cnblogs.com/qinying/archive/2008/09/22/1295730.html

定位子串是指在一个字符串中寻找其中包含的子串或者某个字符。在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中的Indexof,LastIndexOf, Indexofany,LastIndexOfAny 的区别的更多相关文章

  1. String中的两种实例化方式的区别

    直接赋值:(String str = "字符串");只会开辟一块堆内存空间,并且会自动保存在对象池中以供下次重复使用. 构造方法:(String str = new  String ...

  2. string中Insert与Format效率对比、String与List中Contains与IndexOf的效率对比

    关于string的效率,众所周知的恐怕是“+”和StringBuilder了,这些本文就不在赘述了.关于本文,请先回答以下问题(假设都是基于多次循环反复调用的情况下):1.使用Insert与Forma ...

  3. js中substr,substring,indexOf,lastIndexOf的用法小结

    第一组:str.substr(start,length) 和 str.substring(start,end) 定义: str.substr(start,length) substr(start,le ...

  4. Servlet 中为多项选择题判分---String类的indexOf()方法妙用

    首先来看一下String类的indexOf()方法的用法: public class FirstDemo1 { /** *API中String的常用方法 */ // 查找指定字符串是否存在 publi ...

  5. Oracle SQL中实现indexOf和lastIndexOf功能

    Oracle SQL中实现indexOf和lastIndexOf功能 https://www.2cto.com/database/201305/210470.html

  6. IndexOf、IndexOfAny 、Remove

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. C# indexof和indexofany区别(转)

    定位子串是指在一个字符串中寻找其中包含的子串或者某个字符.在String类中,常用的定位子串和字符的方法包括IndexOf/LastIndexOf及IndexOfAny/LastIndexOfAny, ...

  8. String类的indexOf方法的用法和举例

    2017年3月3号博主第一次去郑州互联网公司面试,背景是这样的我先前去了农大龙子湖校园招聘投简历,然后第二天去面试了那经历可以说是很失败的一次面试,当然这跟自己的水平有关了接下来重点讲一下面试的题目: ...

  9. IndexOf() LastIndexOf() Contains() StartsWith() EndsWith()方法比较

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

随机推荐

  1. 利用Java自带的MD5加密java.security.MessageDigest;

    MD5加密算法,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD2.MD3.MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著 ...

  2. drop.delete.trauncat的区别

    delete删除数据,保留表结构,可以回滚,如果数据量大,很慢,回滚是因为备份了删除的数据(删除数据时有两个动作,删除和备份) truncate删除所有数据,保留表结构,不可以回滚,一次全部删除所有数 ...

  3. java转换json需导入的jar包说明

    commons-beanutils-1.8.0.jar不加这个包 java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBe ...

  4. MSSQL大全

    一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...

  5. 教你如何将 Sublime 3 打造成 Python/Django IDE开发利器

    Sublime Text 是一款非常强大的文本编辑器, 下面我们介绍如何将 Sublime Text 3 打造成一款 Python/Django 开发利器: 1. 安装 Sublime Text 3 ...

  6. I.MX6 Linux udev porting

    /*********************************************************************** * I.MX6 Linux udev porting ...

  7. 庖丁解牛-----Live555源码彻底解密(RTP解包)

    Live555 客户端解包 以testRTSPClient.cpp为例讲解: Medium<-MediaSource<-FramedSource<-RTPSource<-Mul ...

  8. 移动对meta的定义

    以下是meta每个属性详解 尤其要注意的是content里多个属性的设置一定要用分号+空格来隔开,如果不规范将不会起作用. 一.<meta http-equiv="Content-Ty ...

  9. javascript的setTimeout()用法总结,js的setTimeout()方法

    引子 js的setTimeout方法用处比较多,通常用在页面刷新了.延迟执行了等等.但是很多javascript新手对setTimeout的用法还是不是很了解.虽然我学习和应用javascript已经 ...

  10. oracle-Oracle试题

    ylbtech-doc:oracle-Oracle试题 oracle-Oracle试题 1.A,返回顶部 01.{Oracle题目}你判断下面语句,有什么作用?(选择1项)     GRANT upd ...