查询字符/字符串出现次数

//查找每个字符在字符串中出现的次数
    @org.testng.annotations.Test
    public void test24() {
        String str = "abcabcdefgABCD";
        lettercount3(str);

    }

    public static void lettercount3(String s) {

        System.out.println(s);
        List<String> list = Arrays.asList(s.split(""));
        Map map = new TreeMap();
        for (String str : list) {
            map.put(str, Collections.frequency(list, str));
        }
        System.out.println(map);

    }


    //查找A字符串在B字符串中出现的次数

//写法1
    @org.testng.annotations.Test
    public void test25() {

        int abc = get("abc", "abcdefabckkke;l,,,;l[p0ol;k,ml;klok/.,;kpokmmlok.abcjjjehfabc");
        System.out.println(abc);

    }

    public int get2(String a, String b) {
        int num = 0;
        while (b.contains(a)) {
            b = b.substring(b.indexOf(a) + a.length());
            System.out.println(b);
            num++;
        }
        return num;

    }


//效率更高的写法2
    @org.testng.annotations.Test
    public void test26() {
        int abc = get("abc", "abcdefabckkke;l,,,;l[p0ol;k,ml;klok/.,;kpokmmlok.abcjjjehfabc");
        System.out.println(abc);

    }

    public int get(String a, String b) {
        int count = 0;
        char[] aa = a.toCharArray();
        char[] bb = b.toCharArray();
        if (aa.length > bb.length) return 0;
        for (int i = 0; i < bb.length; i++) {
            int sign = i;
            boolean success = true;
            for (int j = 0; j < aa.length; j++) {
                if (sign >= bb.length) {
                    success = false;
                    break;
                }
                if (aa[j] == bb[sign]) {
                    sign++;
                } else {
                    success = false;
                    break;
                }

            }
        if (success) count++;
    }
        return count;
}

what are you doing? 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值