题目:
获取一个字符串在另一个字符串中出现的次数
例如,获取"kk"在"abkkcdkkefkkskk"中出现的次数
想到可以用split来做
public class Main {
public static void main(String[] args) {
String s = "abkkcdkkefkkskk";
System.out.println(s.split("kk").length);
}
}
但是这么做有一个问题: 如果目标字符串的最后n位都是切割符的话 split就不会切分
因此如果目标字符串为:
"abkkcdkkefkks"
或者:
"abkkcdkkefkkskkkk"
答案都会是错误的
只需要把split("kk") 换成split("kk",-1) 并调整一下数组的长度 就可以解决了
public class Main {
public static void main(String[] args) {
String s = "abkkcdkkefkkskk";
System.out.println(s.split("kk",-1).length-1);
}
}
这样无论末尾有多少位分割符 都能得出正确的结果