这个问题在刘意老师视频中是讲过的,老师讲的思路是判断给定较小那个字符串在给定的大字符串中的索引值,然后使用substring()方法截取从索引位置向后有较短字符串的长度个位置截取到底,然后循环判断,最终直到输出索引为-1;但是有人想出另外一种方法代码如下:
public class CharDemo {
public static void main(String[] args) {
String max = "nbanbanbanbahanba";
String min="nba";String add="$";
//getCount(s1,s2);
getc(max,min,add);
}
public static void getc(String max,String min,String add){
String m1=add+max+add;
String[] str=m1.split(min);
System.out.println(--str.length);
}
/*
这个方法的原理在于当避免了两端有要查找的字符串时,
直接分割字符串(当中间有目标字符串在一起的情况会
生成连在一起的字符串的个数-1个元素,这些元素都是
空字符串,与其它非目标字符串数量无关),最终会得
到目标字符串的个数+1个元素,所以只要输出最后得到
的字符串数组个数-1就是目标字符串的个数。
*/
大家看看怎么样 |