Java中字符串中子串的查找共有四种方法,如下:
- int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。
- int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引
- int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引。
- int lastIndexOf(String str, int startIndex) :从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引
思路:
①首先可以从头开始查找(从尾部也是同样的),如果找到了需要将startIndex改变为找到处的索引。(获取找到处的索引)
②找到一次,使次数加1
③让下一次开始检索处为 上一次找到的索引 + 需要查找的字符长度
比如:String info = “abcabab”; 现要查找ab出现的次数,那么调用indexOf(“ab”,0) 从头开始查找,找到后ab后,返回了”ab“中a的索引(即返回所查字符串中最前方的索引) 为3,因ab的长度为2,我们是不是可以将"ab"中的b排除在外,不用进行下一次检索,因为直接找到了,所以可以将下一次开始检索处设置为该字符串中的最后一个字符所在索引处。
public static