如何检查字符串中每个子字符串中字符串出现的次数?
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
所以我目前正在做一个个人项目,我制作了一个程序来计算具有特定字符串的子字符串的数量
这就是我调用方法的方式:
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