java中查找字符串

String类提供了两种查找字符串的方法,它们允许在字符串中搜索指定的字符或字符串,其中的indexOf()方法用于搜索字符或子字符串首次出现的位置,lastIndexOf()方法用于搜索字符或子字符


 

查找字符串


String类提供了两种查找字符串的方法,它们允许在字符串中搜索指定的字符或字符串,其中的indexOf()方法用于搜索字符或子字符串首次出现的位置,lastIndexOf()方法用于搜索字符或子字符串最后一次出现的位置。


这两种方法被几种不同的方法重载。在所有这些情况下,方法返回字符或子字符串被发现的位置的下标,当搜索失败时,返回−1。


   indexOf(int ch)方法


该方法用于获取字符串中指定字符第一次出现处的索引,若字符没有出现则返回−1。


str.indexOf(ch)


ch:要搜索的字符。


str:一个字符串对象。


   lastIndexOf(int ch)方法


该方法用户获取字符串中指定字符最后一次出现处的索引,若字符没有出现则返回−1。


str.lastIndexOf(ch)


ch:要搜索的字符。


str:一个字符串对象。


   indexOf(String str)方法


该方法用于获取字符串中指定的子字符串首次出现的索引位置,如果子字符串作为该字符串的子字符串出现,则返回该子字符串的第一个字符的索引,如果没有作为一个子字符串出现则返回−1。


str.indexOf(substr)


substr:搜索的字符串。


str:一个字符串对象。


   lastIndexOf(String str)方法


该方法用于获取字符串中指定的子字符串最后一次出现的索引位置。如果子字符串作为字符串的一个子字符串出现了一次或更多次,则返回最后一次出现该子字符串的第一个字符的索引。若没有作为一个子字符串出现则返回−1。


str.lastIndexOf(substr)


str:一个字符串对象。


substr:搜索的子字符串。


注意:


这里子字符串由substr指定。返回该子字符串在字符串中最右端出现处的索引。最后的空字符串“”将被认为出现在下标值为this.length()方法的返回位置(即字符串的长度)。


以上4种形式的方法,都不能指定搜索的起点,下面将介绍另外几种重载方法,根据指定搜索的起始点来搜索内容。


   indexOf(int ch,int startIndex)


该方法根据指定搜索起点,搜索指定字符首次出现的位置。


语法:


indexOf(ch,startIndex)


ch:要搜索的字符。


startIndex:开始查找位置的索引。


   lastIndexOf(ch, startIndex)方法


该方法根据指定的搜索起点,搜索指定字符最后一次出现的位置。


语法:


int lastIndexOf(ch,startIndex)


ch:要搜索的字符。


startIndex:开始查找位置的索引。


   indexOf(String str, int startIndex)方法


该方法根据指定的搜索起点,搜索指定字符串首次出现的位置。


indexOf(str,startIndex)


str:要搜索的子字符串。


startIndex:开始查找位置的索引。


   lastIndexOf(String str, int startIndex)方法


该方法根据指定的搜索起点,搜索子字符串最后一次出现的位置。


lastIndexOf(str,startIndex)


str:要搜索的子字符串。


startIndex:开始查找位置的索引。


下面以实例演示字符串的各种搜索方法。例如搜索字符串中指定的字符或字符串的起始位置和终止位置。实例的实现步骤如下。


(1)创建StrSearch类,在该类中分别定义字符串变量str和整型变量rs。然后输出字符串str的各种搜索方法的返回结果到控制台中。


src\com\lzw\StrSearch.java关键代码如下:


public static void main(String[] args) {


String str="mingrikeji";               // 创建字符串


int rs=str.indexOf('i');


System.out.println("字符i首次出现的位置是:"+rs);


rs=str.lastIndexOf('i');


System.out.println("字符i最后一次出现的位置是:"+rs);


rs=str.lastIndexOf("ri");


System.out.println("字符串ri首次出现的位置是:"+rs);


rs=str.lastIndexOf("ri");


System.out.println("字符串i最后一次出现的位置是:"+rs);


rs=str.lastIndexOf('i',4);


System.out.println("从的5个字符后,字符i首次出现的位置是:"+rs);


}


src\com\lzw\StrSearch.java完整代码:


package com.lzw; 

 public class StrSearch { 

 public static void main(String[] args) { 

 String str="mingrikeji"; 

 int rs=str.indexOf('i'); 

 System.out.println("字符i首次出现的位置是:"+rs); 

 rs=str.lastIndexOf('i'); 

 System.out.println("字符i最后一次出现的位置是:"+rs); 

 rs=str.lastIndexOf("ri");