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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© android-liu 中级黑马   /  2015-3-11 19:31  /  1043 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package com.xiangying;

  2. public class Day12_11 {

  3.         /**
  4.          *获取长字符串中的子串
  5.          *例如:
  6.             查找下面字符串中总共有几个java
  7.          *dgjoiwjavafaogoujojlajfljjavalajooujjavakhoiyuehiyy1234java;
  8.          */
  9.         public static void main(String[] args) {
  10.                 int count=getCount("dgjoiwjavafaogoujojlajfljjavalajooujjavakhoiyuehiyy1234java","java");
  11.                 System.out.println(count);

  12.         }
  13.         //定义一个方法,传入任意字符串,和要查找的字子符串,返回此字符串在字符串中个数;
  14. public static int getCount(String str,String subStr){
  15.         int count =0;
  16.         int index=0;
  17.        
  18.         while(index!=-1){
  19.                 index=str.indexOf("java");
  20.                 int start=index+subStr.length();//把找到的子串位置+子串长度作为下一个开始位
  21.                  str=str.substring(start);//截取后面的串
  22.                  count++;
  23.         }
  24.        
  25.        
  26.        
  27.        
  28.         return count;
  29. }
  30. }
复制代码

4 个回复

正序浏览
好深奥,看不懂。
两个数组比较,遍历数组1,比较数组2首字符,若相同比较数组2的第二个字符。(刚看过循环,给出的思路,求证各位大神)
回复 使用道具 举报
楼上正解,用双重判断
回复 使用道具 举报
最快的方法就是在里面加个判断条件,如下:
while(index!=-1){
                index=str.indexOf("java");
                if(index!=-1){
                        int start=index+subStr.length();//把找到的子串位置+子串长度作为下一个开始位
                        str=str.substring(start);//截取后面的串
                        count++;
                 }
        }
回复 使用道具 举报
int start <=str.length
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马