1. 程式人生 > 其它 >小演算法題(幹寫)

小演算法題(幹寫)

演算法題:1

獲取一個字串在另一個字串中出現的次數。比如:獲取“ab”在 “abkkcadkabkebfkabkskab” 中出現的次數21

package Java5.exer;

import org.testng.annotations.Test;

/**
 * @author [email protected]
 * @version v1.0
 * @Date:2022/2/18
 * @Description 獲取一個字串在另一個字串中出現的次數。比如:獲取“ab”在 “abkkcadkabkebfkabkskab” 中出現的次數21
 */
public class JavaStringExer1 {

    public int isStringNumber(String str, String numStr) {

        if (str.length() >= numStr.length()) {
            if(str != null && numStr != null) {
                int total = 0;

                char[] strChar = str.toCharArray();
                char[] numStrChar = numStr.toCharArray();

                for (int i = 0; i < str.length(); i++) {
                    if(strChar[i] == numStrChar[0]) {
                        if(i < (strChar.length - numStr.length()) + 1) {
                            for (int j = i+1, x = 1; x < numStr.length(); j++, x++) {
                                if(strChar[j] == numStrChar[x]) {
                                    if(x == numStr.length() - 1) {
                                        total++;
                                    }
                                }
                            }
                        }
                    }
                }
                return total;
            }
        }
        return 0;
    }

    @Test
    public void test1() {
        String test = "abkkcadkabkebfkabkskab";
        int num = isStringNumber(test, "bk");
        System.out.println("次數為:" + num + "次");
    }
}