字符串查找

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