package test;
/**
* 设计一个方法,用于获取一个字符串中指定子串出现的次数。
* 比如说"hanbasdnbafllgnbahjnbakqqqqlnbaxi"
* 在这个字符串中,多有个nba?
*/
public class Test4 {
public static void main(String[] args) {
String s1 = "87nba00nba00nba00nba0nba0nba";
String s2 = "nba";
int geshu = geShu(s1, s2);
System.out.println(geshu);
}
/**
* split方法在切割时,如果最后是以切割的字符结尾时,结尾后的部分不会加载到数组中。
* 特别的一点是,当结尾部分是以几次切割的字符结尾时,结尾的切割字符都被忽略了
* 以此题为例:"87nba00nba00nba00nbanbanba"以nba切割时,最后的三个nba跟1个nba的效果一样
*/
public static int geShu(String s1, String s2) {
int count = 0;
//先判断结尾有几个切割字符
while (s1.endsWith(s2)) {
count++;
s1 = s1.substring(0, s1.length() - s2.length());
}
//再计算不以切割字符结尾的个数
int i = s1.split("nba").length - 1;
//相加就得到个数
count += i;
return count;
}
}
|
|