这是我到目前为止所写的。不幸的是,我的代码仅在不重叠的情况下计算字符串出现的次数。如果有人能指出我正确的方向,那就太好了!
以下是一些示例:
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;
答案 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
,并传入您的句子,然后传入您要查找的短语。我希望这会有所帮助!