//不适用的情况1,"kkkkkk".split("kk") 获取的数组长度为0;
//不适用的情况2,"abcdekkfgkk".split("kk")
//为了使其同样也适应于情况1和情况2,可以在需要切割的字符串后增加一个空格(或其他特定字符)即"kkkkkk ".split("kk");"abcdekkfgkk ".split("kk")。但是规则字符串不能以空格(其他特定字符)结尾
- public static int countString(String src,String s){
- /* //String sss = "dfegkk";
-
- 单纯的用切割,有些时候会少计算:例如:"s=dfegkk",查找kk的次数
- String arr[] = s.split("kk");得到的数组长度为1,而不是2。因此长度减去1,便成0了,所以会少计算
- 即:当所要查找的字符串在源字符串最后时,会少计算一次
- 因此,使用时要判断,src字符串最后是否包含s
- 注意:split("kk");是在kk之后进行切割
-
- if(src.length()<s.length()){
- return 0;
- }
- String[] arr = src.split(s);
- if(src.endsWith(s)){//如果是以所要查询的字符串结尾,则直接返回切割后数组长度
- return arr.length;
- }
- return arr.length-1;*/
-
- if(src.length()<s.length()){
- return 0;
- }
- String temp = src+" ";
- return temp.split(s).length-1;
- }
复制代码 |