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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qmlovewhr 中级黑马   /  2013-7-3 20:50  /  1290 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杜光 于 2013-7-5 07:32 编辑

while((index=str.indexOf(key))!=-1)
                {
                        sop("str="+str);
                        str=str.substring(index+key.length());
                        count++;
                }
这几条语句是什么意思呀,没太看明白。

点评

第一:以后请用代码工具发帖 第二:问题描述请尽量详尽些  发表于 2013-7-3 21:37

评分

参与人数 1黑马币 +5 收起 理由
杜光 + 5 每天提问并回答问题,是对知识的复习和积累.

查看全部评分

7 个回复

倒序浏览
代码不完整,贴完整才好理解啊,从着几条可以看出的就是搜索字符串,然后分割.
回复 使用道具 举报
while((index=str.indexOf(key))!=-1)//while循环括号内是进入循环的条件
                {
                        sop("str="+str);//应该在外面有个public static String sop(Object obj){System.out.println(obj)}这样的方法方便打印
                        str=str.substring(index+key.length());//这是获取字符串,从index+key.length()值开始到最后一个字符。
                        count++;//这是记数器,每循环一轮,count要加1,count++相当于count=count+1
                }

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报

  1. while((index=str.indexOf(key))!=-1)//获取关键字key在字符串中的索引位置,如果找到值就!=-1,循环体执行,找不到就是-1,循环体不执行
  2.                 {
  3.                         sop("str="+str);//sop应该是System.out.println
  4.                         str=str.substring(index+key.length());
  5. //把从索引位置加上key长度地方开始(比如索引在3位置,加上key长度2,就是从5位置开始到结尾),到字符串结束,中间的字符串给str
  6.                         count++;
  7.                 }
复制代码
回复 使用道具 举报
本帖最后由 王洪波 于 2013-7-3 21:12 编辑

你先看下substring方法的原型声明(尤其要理解beginIndex的含义:
  1. /**
  2.       * Parameters:
  3.                         beginIndex - the beginning index, inclusive.
  4.                         endIndex - the ending index, exclusive.
  5.                         
  6.        * Returns:
  7.                         the specified substring.
复制代码
这个beginIndex形参每次都向前移动,以获取后边的子串

我把这个语句拆成下边这样,希望有助于你的理解
  1. index = str.indexOf(key);
  2. while(index!=-1)
  3. {
  4.           sop("str="+str);
  5.           str=str.substring(index+key.length());
  6.           index = str.indexOf(key);//取子串中key的首位置
  7.           count++;
  8.    }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杜光 + 1 每天提问并回答问题,是对知识的复习和积累.

查看全部评分

回复 使用道具 举报
首先,你这段代码就不完整,变量和方法的声明都没有,我只能靠猜测:
  1. while((index=str.indexOf(key))!=-1)//这里应该是循环读一个字符串直到在str这个字符串中找到key
  2.                 {
  3.                         sop("str="+str);//这里应该是一个被包装成sop()的打印语句
  4.                         str=str.substring(index+key.length());//这里应该是在str这个字符串中筛选出key
  5.                         count++;//这里应该是用作计数
  6.                 }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
为了更好的维护论坛的学习氛围,如果您的的问题“已经解决”请即时将帖子状态改成“已解决”

-------------------坚持学习,黑马因你而精彩---------------
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马