A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© KID灬熊孩子 中级黑马   /  2014-8-5 19:52  /  1642 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package cn.myjava;
//打印出程序中出现的“nba”的个数
public class Demo4 {
        public static void main(String[] args) {
                String s = "hanbasdnbafllgnbahjnbakqqqqlnbaxi";
                String[] sarr = s.split("nba");
               
                System.out.println(sarr.length-1);
        }
}

这个nba在字符串尾端的话程序就不合理,,,该怎么改啊

8 个回复

倒序浏览
这个视屏中有讲过的啊,最好用个计数器来记录他出现的个数,这样用的话只能是开头结尾没有出现这个字符串
回复 使用道具 举报
//不适用的情况1,"kkkkkk".split("kk") 获取的数组长度为0;
//不适用的情况2,"abcdekkfgkk".split("kk")
//为了使其同样也适应于情况1和情况2,可以在需要切割的字符串后增加一个空格(或其他特定字符)即"kkkkkk ".split("kk");"abcdekkfgkk ".split("kk")。但是规则字符串不能以空格(其他特定字符)结尾
  1.         public static int countString(String src,String s){
  2.         /*        //String sss = "dfegkk";
  3.                
  4.                 单纯的用切割,有些时候会少计算:例如:"s=dfegkk",查找kk的次数
  5.                 String arr[] = s.split("kk");得到的数组长度为1,而不是2。因此长度减去1,便成0了,所以会少计算
  6.                 即:当所要查找的字符串在源字符串最后时,会少计算一次       
  7.                 因此,使用时要判断,src字符串最后是否包含s       
  8.                 注意:split("kk");是在kk之后进行切割
  9.                  
  10.                 if(src.length()<s.length()){
  11.                         return 0;
  12.                 }
  13.                 String[] arr = src.split(s);               
  14.                 if(src.endsWith(s)){//如果是以所要查询的字符串结尾,则直接返回切割后数组长度
  15.                         return arr.length;
  16.                 }
  17.                 return arr.length-1;*/
  18.                
  19.                 if(src.length()<s.length()){
  20.                         return 0;
  21.                 }
  22.                 String temp = src+" ";
  23.                 return temp.split(s).length-1;
  24.         }
复制代码
回复 使用道具 举报
来看看:Q
回复 使用道具 举报
路过.....我以前也试过一种截取方式,  就是里面什么都不放  不知道和你的一样不 :)
回复 使用道具 举报
..........................
回复 使用道具 举报
split 之前:s = "0" + s + "0";
回复 使用道具 举报
。。。。。。。。。。。。。。。
回复 使用道具 举报
老老实实一步步来,不要想着一步到位
  1. public static void main(String[] args) {
  2.                  String s = "hanbasdnbafllgnbahjnbakqqqqlnbaxi";
  3.                  int count = 0, i = -1;
  4.                  while ((i = s.indexOf("nba")) != -1) {
  5.                          count++;
  6.                          s = s.substring(i + "nba".length());
  7.                  }
  8.                  System.out.println(count);
  9.      }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马