获取一个字符串在另一个字符串中出现的次数。
比如:获取“ ab”在 “abkkcadkabkebfkabkskab” 中出现的次数
代码实现
方式一:
使用startsWith()
方法逐个比较以指定字符串开头的子字符串。
public static int getTime(String s1, String s2){
int count = 0;
for (int i = 0; i < s1.length(); i++){ //使用for循环逐个比较以s2开头的子字符串
if (s1.startsWith(s2,i)){
count++;
}
}
return count;
}
@Test
public void test2(){
String s1 = "abkkcadkabkebfkabkskab";
String s2 = "ab";
System.out.println(getTime(s1,s2));
}
方式二:
使用indexOf()
方法返回第一次出现的索引值,然后步长为子字符串的长度,逐步搜索。
public int getTime1(String str, String sub){
int count = 0;
int index = 0;
while (index < str.length()){
if ((index = str.indexOf(sub,index)) != -1){
count++;
index += sub.length();
}
}
return count;
}