如何计算字符串中出现字符串的次数(重叠)

时间:2018-11-12 23:42:02

标签: java

这是我到目前为止所写的。不幸的是,我的代码仅在不重叠的情况下计算字符串出现的次数。如果有人能指出我正确的方向,那就太好了!

以下是一些示例:

howManyWithOverlap(“ asdfgasjkasiuas”,“ as”)返回4

howManyWithOverlap(“ baaaaaac”,“ aaa”)返回4

int count = 0;
int n = 0;

for (int i = 0; i >= str.length(); i++)
{
    if (word.equals(str.substring(count, count + n)))
    {
        count++;
    }
}
return count;

2 个答案:

答案 0 :(得分:1)

我认为,简单地循环并使用startWith是一个更简单的解决方案

-Dhttp.nonProxyHosts=s3***.com

答案 1 :(得分:0)

在这里,您无需检查任何连续的短语就可以使用startsWith功能来做到这一点。

public static int howManyWithOverlap(String sentence, String phrase){
    int length = sentence.length();
    int phraseLength = phrase.length();
    int count = 0;
    //Check each phrase of consecutive letters to see if it matches.

    for(int i = 0; i < length - phraseLength + 1; i++){
        if(sentence.substring(i, i + phraseLength).equals(phrase)){
            count++;
        }
    }

    //count is the number of instances in the sentence.
    return count;
}

此方法应返回该短语在字符串中出现的次数。现在,您所要做的就是调用此功能howManyWithOverlap,并传入您的句子,然后传入您要查找的短语。我希望这会有所帮助!