编程语言
首页 > 编程语言> > 小算法题(干写)

小算法题(干写)

作者:互联网

算法题:1

获取一个字符串在另一个字符串中出现的次数。比如:获取“ab”在 “abkkcadkabkebfkabkskab” 中出现的次数21

package Java5.exer;

import org.testng.annotations.Test;

/**
 * @author test_2902059961@qq.com
 * @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 + "次");
    }
}

标签:numStr,int,strChar,算法,干写,++,length,str
来源: https://www.cnblogs.com/MaziLong/p/15908486.html