获取一个子串在字符串中出现的次数。(面试题)
* "nbawernbatyunbaidfnbaghjnba" nba出现了几次。
*
* 思路:
* 1,需要对nba在整串中进行查找。
* 2,如果找到了,记录nba出现的位置,
* 3,再从这个位置+nba长度的位置开始继续查找剩下的字符串中是否还有nba。
* 4,通过计数器来记录每次查找的次数
*
* 步骤:
* 1,先有计数器。
* 2,定义变量记录每次出现的位置。
* 3,可以通过String类中的indexOf方法来完成对子字符串的索引。
* 4,指定的子串有可能有很多,需要不断的查找(循环 ,条件,找不到了就结束。).
*
*/
Public static void main(String[] args){
String s1 = "nbawernbatyunbaidfnbaghjnba";
String key = "nba";
int count = getSubCount(s1,key);
System.out.println(key+",count="+count);
}
/**
* 获取一个子串在字符串中出现的次数。
* @param str 给定的字符串。
* @param key 要找的子串
* @return 返回key出现在str中的次数。
*/
public static int getSubCount(String str,String key){
//1,定义变量,一个是计数器,一个是记录位置。
int count = 0;
int index = 0;
//2,调用indexOf方法获取key出现的位置。
while((index = str.indexOf(key,index))!=-1){
index = index + key.length();
count++;
}
return count;
}
希望对楼主有帮助 |