黑马程序员技术交流社区

标题: String类的应用-->统计字符串的小串次数 [打印本页]

作者: 时光匆匆    时间: 2015-5-14 21:05
标题: String类的应用-->统计字符串的小串次数
import java.util.Scanner;

/*
* 统计一个字符串中某些字符串出现的次数。
*/
public class Student3 {
        public static void main(String[] args) {
                                //改为键盘录入。
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入字符串");
                String max = sc.nextLine();
                System.out.println("请输入你要查询的内容");
                String min = sc.nextLine();
               
                //String maxString = "jaamaxindexjavcxtoyudedexixinbajassdsdfasflkh";
                //String minString = "j";
                int count = getCount(max, min);
                System.out.println("统计"+min+"次数为:" + count);

        }

        // 方法实现 2个明确:1 :返回类型为int 2:变量为2个字符串。
        public static int getCount(String max, String min) {
                int count = 0;
                // 先在大串中查一次小串的位置。
                int index = max.indexOf(min);
                // 索引不是-1说明存在小串 ,统计变量+1
                while (index != -1) {
                        count++;
                        // 截取长度。第一次索引长度+小串的长度。
                        int temp = index + min.length();
                        // 把大串的长度截取刚才的长度重新复制给大串。
                        max = max.substring(temp);
                        // 继续进行判断。
                        index = max.indexOf(min);
                }
                // 返回统计次数。
                return count;
        }
}
作者: 时光匆匆    时间: 2015-5-14 21:07
API 类好多。。智商不够用了
作者: ailj_2015    时间: 2015-5-14 21:14
假如用户先输入小字符串,再输入大字符串,你这个程序就不行呀,所以
getCount(String s1,String s2)接收的任意两个字符,方法里面得先判断那个是max,那个是min,且里面判读好像也可以改为while(max.contains(min))不一定用index !=-1这个条件判断





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