String类提供了两种查找字符串的方法,indexOf()与lastIndexOf()方法。这两种方法都允许在字符串中搜索指定条件的字符或字符串。indexOf()方法返回的是搜索的字符或字符串首次出现的位置,lastIndexOf()方法返回的是搜索的字符或字符串最后一次出现的位置。
l indexOf(String s)
该方法用于返回参数字符串s在指定字符串中首次出现的索引位置。当调用字符串的indexOf()方法时,会从当前字符串的开始位置搜索s的位置,如果没有检索到字符串s,该方法返回值是-1。
语法:
str.indexOf(substr)
str:任意字符串对象。
substr:要搜索的字符串。
例 查找字符a在字符串str中的索引位置,实例代码如下:
public class StringIndexOf {
public static void main(String[] args) {
String str = "We are students"; // 创建一个字符串
int index = str.indexOf("a"); // 变量index的值是3
System.out.println("a在" + str + "中的位置是:" + index);
}
}
运行结果如图1所示。
图1 字符串str下标
理解字符串的索引位置,要对字符串的下标有所了解。在计算机中String对象是用数组表示的。字符串的下标是从0~length()-1。上例中字符串str的下标如图2所示。
图2 字符串str下标
l lastIndexOf(String str)
该方法用于返回指定字符串最后一次出现的索引位置。当调用字符串的lastIndexOf()方法时。会从当前字符串的开始位置检索参数字符串str,并将最后一次出现str的索引位置返回。如果没有检索到字符串str,该方法返回-1。
语法:
str. lastIndexOf(substr)
str:任意字符串对象。
substr:要搜索的字符串。
说明:如果lastIndexOf()方法中的参数是空字符串“”,则返回的结果与调用该字符串length()方法的返回结果相同。下面的程序就可说明这个问题。
public class Text { //创建类
public static void main(String args[]) { //主方法
String str = "We are students"; //定义字符串str
int size = str.lastIndexOf(""); //将空字符串在str中的索引位置赋值给变量size
System.out.println("空字符在字符串str中的索引位置是:" + size); //将变量size输出
System.out.println("字符串str的长度是:" + str.length()); //将字符串str的长度输出
}
}
运行结果如图3所示:
图3 实例运行结果