### 字符串查找

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 实例运行结果