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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 978677855 中级黑马   /  2016-3-9 18:05  /  1272 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


求助:为什么获取大字符串中指定索引位置后的小字符出现的索引,并将其赋值给i,这么写之后,最后没有输出结果。debug测试的时候发现“i”的值一直未变,不知道什么原因,求指教,谢谢!

5 个回复

倒序浏览
public class a1{
      public static void main(String[] args) {
                String s = "woaijavazhenaijavaldfjjavajfjdjfkdjavalkj";
                int i=0;
                int count = 0;
                while(( i = s.indexOf("java")) != -1){
                        s = s.substring(i+"java".length());
                        count++;
               
                }
                System.out.println(count);
        }
}
回复 使用道具 举报
你的之所以不对是因为:你第一次的i=4,而进入循环以后一直找的是从索引为4到结尾的字符串中第一个java的位置,也就是你的一直是0
回复 使用道具 举报
一直重复在做一个动作
回复 使用道具 举报
孟茹 发表于 2016-3-10 17:39
你的之所以不对是因为:你第一次的i=4,而进入循环以后一直找的是从索引为4到结尾的字符串中第一个java的位 ...

太感谢了,弄明白了!我陷入了死循环,一直在获取第一个小串的索引,i 输出的一直是4,还是第一个小串的索引。不是0,不过还是谢谢了!
回复 使用道具 举报
【这是我解决上次出现的问题后写的代码,正常运行。老师视频讲的是获取小字符串之后对大字符串进行截取,下面这个是用不截取的方法做的。给大家分享下,请多指教。】

package com.heima.news;
//统计大串中小串出现的次数
public class L04 {
        public static void main(String[] args) {
                String s="woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun";
                int count =0;
                String s1="java";
                int i = s.indexOf(s1);        //获得小字符串"java"在大字符串中的索引
         while(i!=-1){
                count++;
                i=i+s1.length();
                i = s.indexOf(s1, i);  //获取大字符串中指定索引位置后的小字符出现的索引,并将其赋值给i
        }
                System.out.println(count);       
                }

}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马