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

pgvzfuti  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(386)

所以我现在正在做一个个人项目,我做了一个程序,试图计算有特定字符串的子字符串的数量
我是这样称呼我的方法的:
countsubstringssstartingwith(“密西西比小姐”,“是”))
我希望输出是:

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....

我想检查目标的每个子字符串,如果存在目标,那么它将向count加1

你知道怎么解决这个问题吗?
提前谢谢!

dl5txlt9

dl5txlt91#

你可以利用 str.indexOf :

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

相关问题