字符串查找

String类提供了两种查找字符串的方法,即indexOf()与lastIndexOf()方法。这两种方法都允许在字符串中搜索指定条件的字符或字符串。indexOf()方法返回的是搜索的字符或字符串首次出现的位置,lastIndexOf()方法返回的是搜索的字符或字符串最后一次出现的位置。

(1)indexOf(String s)

该方法用于返回参数字符串s在指定字符串中首次出现的索引位置。当调用字符串的indexOf()方法时,会从当前字符串的开始位置搜索s的位置;如果没有检索到字符串s,该方法的返回值是-1。语法如下:

str.indexOf(substr)
  • str:任意字符串对象。
  • substr:要搜索的字符串。

【例子】查找字符a在字符串str中的索引位置,实例代码如下:

String str = "We are students";
int size = str.indexOf("a");  
  //变量size的值是3

理解字符串的索引位置,要对字符串的下标有所了解。在计算机中String对象是用数组表示的。字符串的下标是0~length()-1。例子中字符串str的下标如图所示。

字符串str下标
字符串str下标

(2)lastIndexOf(String str)

该方法用于返回指定字符串最后一次出现的索引位置。当调用字符串的lastIndexOf()方法时,会从当前字符串的开始位置检索参数字符串str,并将最后一次出现str的索引位置返回。如果没有检索到字符串str,该方法返回-1。语法如下:

str.lastIndexOf(substr)

  • str:任意字符串对象。
  • substr:要搜索的字符串。

如果lastIndexOf()方法中的参数是空字符串""(注意没有空格),则返回的结果与调用该字符串length()方法的返回结果相同。例5.10的程序就可说明这个问题。

【例子】在项目中创建类Text,在主方法中创建String对象,使用lastIndexOf()方法查看字符串str中空字符串的位置,然后输出字符串的长度,看它们是否相同。

public class Text { 							//创建类
	public static void main(String args[]) { 		//主方法
		String str = "We are students"; 			//定义字符串str
		//将空格在str中的索引位置赋值给变量size
		int size = str.lastIndexOf(" ");
		//将变量size输出
		System.out.println("空格在字符串str中的索引位置是:" + size);
		//将字符串str的长度输出
		System.out.println("字符串str的长度是:" + str.length());
	}
}
实例
运行结果

发表评论