如何检查字符串中每个子字符串中字符串出现的次数?

How to check # of times a string is present in each substring in a string?

所以我目前正在做一个个人项目,我制作了一个程序来计算具有特定字符串的子字符串的数量

这就是我调用方法的方式:

countSubstringsStartingWith("密西西比小姐", "si"))

我希望输出为:

11

所以我写了这个方法

public static int countSubstringsStartingWith(String sentence, String target)  
    {       
      int count = 0;
         for(int i = 0; i < sentence.length()-1; i++){
            String subS = sentence.substring(0, i + 1);
            if(subS.substring(0,target.length() -1).equals(target)) {
               count++;
            }
         } 
      return count;
    } 

但我得到了这个输出:

0

进一步说明:

因此输入“Miss Mississippi”将分解为以下子字符串:

M | Mi | Mis | Miss | Miss | Miss M | Miss Mi | Miss Mis | etc....

我想检查目标的每个子字符串,如果存在目标,那么它会在计数中加 1

知道如何解决这个问题吗?

提前致谢!

你可以利用 str.<b>indexOf</b>:

class Main {
    public static int countSubstringsStartingWith(String sentence, String target) {
        int count = 0;
        int targetLength = target.length();
        int sentenceLength = sentence.length();
        if (targetLength > sentenceLength) {
            return count;
        }
        int index = sentence.indexOf(target);
        while (index >= 0) {
            count += sentenceLength - (index + targetLength - 1);
            index = sentence.indexOf(target, index + 1);
        }
        return count;
    }

    public static void main(String[] args) {
        System.out.println(countSubstringsStartingWith("Miss Mississippi", "si"));
    }
}

输出:

11