java 字符串查找_Java字符串地查找操作

在一个字符串中查找字符或子串是经常使用的操作。String类提供了两种查找字符串的方法,分别是indexOf()和lastIndexOf(),这两种方法都返回待查找字符或子串在字符串的起始索引位置。

int indexOf(String s)

该方法用于在字符串中查找与s字符串匹配的子串,若发现匹配的子串,则返回子串的起始位置索引,如果没有找到与s匹配的子串,返回-1。

调用语法如下:

str.indexOf(s)

其中,str是已创建的字符串对象,s待查找的字符串。

案例1:创建一个字符串对象,使用indexOf()方法查找子串,如查找到子串输出子串内容,否则输出查找子串失败信息。

在PbaseUnit11项目unit包下创建StringSearchSample类。代码如下:

/**

* @Title: StringSearchSample.java

* @Packageunit

* @Description: Java基础知识课程案例

* @author编程训练营

* @date

* @versionV1.0

*/

packageunit;

/**

* @ClassName: StringSearchSample

* @Description: 字符串(字符串查找)案例1

* @author编程训练营

* @date

*

*/

publicclassStringSearchSample {

/**

* @Title: main

* @Description: Java程序入口main方法

* @param@param args 参数

* @return void 返回类型

* @throws

*/

publicstaticvoidmain(String[] args) {

// 创建String对象

String szTemp = "小明正在学习Java编程";

String szSearch = "编程";

// 使用indexOf查找子串"编程"

intnIndex = szTemp.indexOf(szSearch);

// 若nIndex不等于-1,说明已查找到子串

if( nIndex != -1 )

{

// 从szTemp截取已查找到的子串

String szSub = szTemp.substring(nIndex,nIndex+szSearch.length());

// 输出子串

System.out.println(szSub);

}

else

{

System.out.printf("没有查找到子串:%s",szSearch);

}

}

}

程序结构分析

代码创建了两个String对象,一个String对象是szTemp,字符串查找操作在该字符串对象进行,一个String对象是szSearch,该字符串是待查找字符串。

使用String类的indexOf()方法在szTemp中查找szSearch,若szTemp内容包含szSearch,则查找成功。indexOf()方法返回szSearch在szTemp中的起始索引,然后使用String类的substring方法截取子串。

程序执行结果如下图所示:

ebe9c7878eb99500e517c0ce5ba23533.png

int lastIndexOf(String s)

该方法在当前字符串中查找子串s,若s多次出现在当前字符串中,该方法会返回s在当前字符串最后一次出现的索引位置。如果没有找到s,则返回-1。

例如:

在字符串“小明正在学习Java编程,Java编程是他很喜欢的课程”中,查找子串“Java”,lastIndexOf()方法会返回最后出现“Java”的索引位置,即返回索引13。

案例2:创建一个字符串对象,使用lastIndexOf()方法查找子串,如查找到子串输出子串内容,否则输出查找子串失败信息。

在PbaseUnit11项目unit包下创建StringSearchSample2类。代码如下:

/**

* @Title: StringSearchSample2.java

* @Packageunit

* @Description:Java基础知识课程案例

* @author编程训练营

* @date

* @versionV1.0

*/

packageunit;

/**

* @ClassName: StringSearchSample2

* @Description: 字符串(字符串查找)案例2

* @author编程训练营

* @date

*

*/

publicclassStringSearchSample2 {

/**

* @Title: main

* @Description: Java程序入口main方法

* @param@param args 参数

* @return void 返回类型

* @throws

*/

publicstaticvoidmain(String[] args) {

// 创建String对象

String szTemp = "小明正在学习Java编程,Java编程是他很喜欢的课程";

String szSearch = "Java";

// 使用lastIndexOf查找子串"编程"

intnIndex = szTemp.lastIndexOf(szSearch);

// 若nIndex不等于-1,说明已查找到子串

if( nIndex != -1 )

{

// 输出子串的索引位置

System.out.println("查找子串索引位置为:" + nIndex);

// 从szTemp截取已查找到的子串

String szSub = szTemp.substring(nIndex,nIndex+szSearch.length());

// 输出子串

System.out.println(szSub);

}

else

{

System.out.printf("没有查找到子串:%s",szSearch);

}

}

}

程序结构分析

代码使用lastIndexOf()方法查找子串szSearch,szSearch在szTemp出现两次,lastIndexOf()方法会返回szSearch最后一次出现的位置索引。

程序执行结果如下图所示:

3975a0d8a154c06086bfc9df69c423e5.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值