算法题
package com.sq.exer;
import org.junit.Test;
public class StringDemo1 {
/*
获取一个字符串在另一个字符串中出现的次数。
比如:获取"abkkcadkabkebfkaabkskab"中出现的次数
*/
public int getCount(String mainStr,String subStr){
int mainLength = mainStr.length();
int subLength = subStr.length();
int count = 0;
int index = 0;
if(mainLength >= subLength){
// 方式一:
// int indexOf(String str): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1
// while((index = mainStr.indexOf(subStr)) != -1){
// System.out.println("位置:"+index);
// count++;
// mainStr = mainStr.substring(index + subStr.length());
// }
// 方式二:对方式一的改进
// int indexOf(String str, int fromIndex): 返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
while((index = mainStr.indexOf(subStr,index)) != -1){
System.out.println("位置:"+index);
count++;
index += subLength;
}
return count;
} else{
return 0;
}
}
@Test
public void test1(){
String mainStr = "abkkcadkabkebfkaabkskab";
String subStr = "ab";
int count = getCount(mainStr,subStr);
System.out.println(count);
}
}