黑马程序员技术交流社区

标题: 计算大字符串中小字符串出现的次数 [打印本页]

作者: 大地z灵    时间: 2015-10-13 23:49
标题: 计算大字符串中小字符串出现的次数
这段代码变量定义的有点多了
public class StringDemo {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一串字符:");
                String str = sc.nextLine();
                System.out.println("请输入子串");
                String zs = sc.nextLine();
                StringBuilder sb = new StringBuilder(str);
                int x = 0;
                int y = -1;
                int count = 0;
                int len = zs.length();
                while (x < str.length()) {
                        y = sb.indexOf(zs,x);
                        if(y != -1) {
                                count++;
                                x = len+y;
                        }else{
                                break;
                        }
                }
                System.out.println("子串在字符串中出现的次数为"+count+"次");
        }
}
作者: maxwell247    时间: 2015-10-13 23:54
不错,万变不离其宗! 都是使用indexOf方法
作者: 窗外的雪儿飞    时间: 2015-10-14 00:13
可以改进下:
import java.util.Scanner;
public class Test_String {
     public static void main(String[] args) {
           Scanner sc = new Scanner(System.in);
           System.out.println("请输入一串字符:");
           //大串
           String maxStr = sc.nextLine();
           System.out.println("请输入子串");
           //小串
           String minStr = sc.nextLine();
           //定义计数器变量
            int count = 0;
           //定义索引
            int index = 0;
            //定义循环,判断小串是否在大串中出现
            while((index = maxStr.indexOf(minStr)) != -1) {
            //计数器自增
            count++;         
            maxStr = maxStr.substring(index + minStr.length());
             }
         System.out.println(count);
       }
}






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