黑马程序员技术交流社区

标题: 字符串查找的问题 [打印本页]

作者: 赵国刚    时间: 2013-8-13 12:34
标题: 字符串查找的问题
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;
    }
}
作者: 兜兜转转    时间: 2013-8-13 13:16
  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>
复制代码

作者: 兜兜转转    时间: 2013-8-13 13:24
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 13:54
index = str.indexOf(sub))!=-1  我问的是这句
作者: 赵国刚    时间: 2013-8-13 13:55
兜兜转转 发表于 2013-8-13 13:24
class StrigTest3
{
public static void main(String[] args)

哦,想明白了,谢谢啊
作者: masterV    时间: 2013-8-13 13:57
  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子串,
作者: 以防万一    时间: 2013-8-13 22:32
亲,如问题已解决请将分类的未解决改为已解决。

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


保持队形,谢谢合作
作者: 清心玉质    时间: 2013-8-14 14:42
  while ((index = str.indexOf(sub))!=-1) 判断str中是否有sub字符串,如果有返回第一次出现的位置,如果没有返回-1.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2