JAVA学习之获取一个字符串在另一个字符串中出现的次数。

方法1:指针法 先找到首字母相同的位置,然后比对

public class Test04 {
    public static void main(String[] args) {
        String str1 = "ab";
        String str2 = "ababab";
        int count  = 0;
        //  思路: 方法1:指针然后对比
        // 外循环的i 首字母最后的值为两长之差+1
        // 内循环的j 为要查询的字符串长度
        for(int i = 0; i < str2.length()-str1.length()+1; i++){
            int k = 0;
            for(int j = 0; j < str1.length(); j++ ){
                if(str2.charAt(i+j) != str1.charAt(j)){
                    j = str1.length();
                }else {
                    k++;
                }
            }
            if(k == str1.length()){
                count++;
            }
        }
        System.out.println("count = " + count);

    }

方法2:indexof方法 方法1的简化版

package com.atguigu.homework;

public class Test04_1 {
    public static void main(String[] args) {
        String str1 = "ab";
        String str2 = "ababab";
        int count  = 0;
        // 外循环为遍历数组  但是要留一个短数组的空间,这样少判断几次
        for(int i = 0;i < str2.length() -str1.length()+1; i++){
            int idx = -1;
            idx = str2.indexOf(str1,i);
            if(-1 != idx){
                i = idx+1;
                count++;
            }
        }
        System.out.println("count = " + count);
    }
}

你可能感兴趣的:(java,学习,算法)