黑马程序员技术交流社区

标题: 这道题怎么控制字符串角标越界 [打印本页]

作者: android-liu    时间: 2015-3-11 19:31
标题: 这道题怎么控制字符串角标越界
  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. }
复制代码

作者: wf111sxwf    时间: 2015-3-12 00:04
int start <=str.length
作者: Zoe-    时间: 2015-3-12 00:20
最快的方法就是在里面加个判断条件,如下:
while(index!=-1){
                index=str.indexOf("java");
                if(index!=-1){
                        int start=index+subStr.length();//把找到的子串位置+子串长度作为下一个开始位
                        str=str.substring(start);//截取后面的串
                        count++;
                 }
        }
作者: 关山明月    时间: 2015-3-12 09:19
楼上正解,用双重判断
作者: 冯林01    时间: 2015-3-12 10:02
好深奥,看不懂。
两个数组比较,遍历数组1,比较数组2首字符,若相同比较数组2的第二个字符。(刚看过循环,给出的思路,求证各位大神)




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