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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵国刚 中级黑马   /  2013-8-13 12:34  /  1393 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class StrigTest3
{
public static void main(String[] args)
{
int count =getCount("afrbcfrtyhgtfrbgfrd","fr");
   
System.out.println("count="+count);
}
    public static int getCount(String str,String sub)
    {
  int count=0;
  int index=0;
  while ((index = str.indexOf(sub))!=-1)//对于这个while语句的作用不是很明白,请高手指点
  {
          str = str.substring(index+sub.length(),str.length());
    count++;
  }
  return count;
    }
}

评分

参与人数 1技术分 +1 收起 理由
张智文 + 1

查看全部评分

8 个回复

倒序浏览
  1. class StrigTest3
  2. {
  3. public static void main(String[] args)
  4. {
  5. int count =getCount("afrbcfrtyhgtfrbgfrd","fr");
  6.    
  7. System.out.println("count="+count);
  8. }
  9.     public static int getCount(String str,String sub)
  10.     {
  11.   int count=0;<font color="#00ff00">//用来记录要查找子字符串(fr)在给定字符串(afrbcfrtyhgtfrbgfrd)中出现的次数,一个计数器。</font>
复制代码
回复 使用道具 举报
class StrigTest3
{
public static void main(String[] args)
{
int count =getCount("afrbcfrtyhgtfrbgfrd","fr");
   
System.out.println("count="+count);
}
    public static int getCount(String str,String sub)
    {
  int count=0;//一个计数器,用来统计 "fr" 在  "afrbcfrtyhgtfrbgfrd" 中总共出现几次。
  int index=0;//用来记录每一次循环第一次 出现子字符串 "fr"   在此字符串中的索引。//这个While语句就是用来查 "fr"是否出现在给定字符串中,如果存在将第一出现的索引返回来给index  while ((index = str.indexOf(sub))!=-1)//对于这个while语句的作用不是很明白,请高手指点
  {
          str = str.substring(index+sub.length(),str.length());//当找到的时,就将第一次出现“fr”后面的字符截取出来赋给str,然后循环继续重信str中继续找,找到没找到就突出循环。
    count++;
  }
  return count;
    }
}



点评

下次代码在编辑时,放在<>里,看起来会更加清晰  发表于 2013-8-13 22:34

评分

参与人数 1技术分 +1 收起 理由
以防万一 + 1 赞一个!

查看全部评分

回复 使用道具 举报
index = str.indexOf(sub))!=-1  我问的是这句
回复 使用道具 举报
兜兜转转 发表于 2013-8-13 13:24
class StrigTest3
{
public static void main(String[] args)

哦,想明白了,谢谢啊
回复 使用道具 举报
  1. class StrigTest3
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int count = getCount("afrbcfrtyhgtfrbgfrd", "fr");

  6.                 System.out.println("count=" + count);
  7.         }
  8.         public static int getCount(String str, String sub)
  9.         {
  10.                 int count = 0;
  11.                 int index = 0;
  12.                 while ((index = str.indexOf(sub)) != -1)// 当该字符串中包含传入的fr的时候,返回值为第一次出现fr的第一个字母(也就是f)在字符串中的位置,当字符串中没有fr的时候返回-1。
  13.                 {
  14.                         str = str.substring(index + sub.length(), str.length());
  15.                         count++;
  16.                 }
  17.                 return count;
  18.         }
  19. }
复制代码
也就是说当返回值不等于-1的时候才表示该字符串中包含fr子串,

评分

参与人数 1技术分 +1 收起 理由
以防万一 + 1

查看全部评分

回复 使用道具 举报
亲,如问题已解决请将分类的未解决改为已解决。

以后的问题贴也要及时更改分类哦~


保持队形,谢谢合作
回复 使用道具 举报
  while ((index = str.indexOf(sub))!=-1) 判断str中是否有sub字符串,如果有返回第一次出现的位置,如果没有返回-1.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马