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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class StringTese2 {
        public static void main(String[] args) {
                String s = "abcssdockssfdfdkssfdjfkdsshjfuidfssdsf";
                String str ="ss";
                int x = getStringCount(s,str);
                System.out.println(x);
        }

        public static int getStringCount(String s,String key) {
                int count = 0;
                while(true){
                        if (s.contains(key)) {
                                int x =s.indexOf(key);
                                s = s.substring(x,s.length());
                                count++;
                        }else {
                                break;
                        }
                }
                return count;
        }       
}

7 个回复

倒序浏览
哪里出现错误了?
回复 使用道具 举报
while(true){
                        if (s.contains(key)) {
                                int x =s.indexOf(key);
                                s = s.substring(x,s.length());
                                count++;
                        }else {
                                break;
                        }
                }
死循环, int x =s.indexOf(key); 获取到0,然后造成s内容一直都是无法修改,变成了死循环,看不到结果
回复 使用道具 举报
Anmyre 发表于 2015-9-13 14:07
while(true){
                        if (s.contains(key)) {
                                int x = ...

那该如何改呢?
回复 使用道具 举报
你的  String s = "abcssdockssfdfdkssfdjfkdsshjfuidfssdsf";  在获取 int x =s.indexOf(key); x永远都是0,那你把字符数splite掉啊 再处理
回复 使用道具 举报
截取的方式处理一下,应该可以了,见代码;
s = s.substring(x+key.length(),s.length());

public class StringTese2 {

         public static void main(String[] args) {
         String s = "abcssdockssfdfdkssfdjfkdsshajfuidfssdsf";
         String str ="f";
         int x = getStringCount(s,str);
         System.out.println(x);

}

         public static int getStringCount(String s,String key) {
         int count = 0;
         System.out.println(s+"----------------");
         while(s.contains(key)){
                 if (s.contains(key)) {
                 int x =s.indexOf(key);
                 s = s.substring(x+key.length(),s.length());
                 count++;
            }else {
                 break;
            }
        
         }
         return count;
}        

}
回复 使用道具 举报
霹雳三口组 发表于 2015-9-13 21:45
截取的方式处理一下,应该可以了,见代码;
s = s.substring(x+key.length(),s.length());

多谢,原来我 s = s.substring(x,s.length());这个代码有问题,加上key.length()就对了。
回复 使用道具 举报
进来看看学习学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马