经过大量研究后,我坚持这个问题。我想找到不。在另一个String中出现String但需要非常聪明的方法。
a = "ASAD" str = "ASADASAD" expect output:2
b = "AAA" str2 = "AAAAAAAAAA" expect output:8
例如,考虑这两个字符串。在第一行,' a'在' str'中出现两次而在第二行,如果你看到b的整个组合在str2中出现8次。如何在同一代码中同时解决这两个挑战。我已经分别对这两个场景进行了编码,但我想以一种聪明的方式进行编码,因此一个代码可以处理所有可能的输入字符串组合。这是我的代码。
案例1
Type1 = (LongString.split(SmallStr, -1).length-1);
案例2的
while (Index < SmallStr.length())
{
String tester = LongString.substring(Index);
Counter = (tester.split(SmallStr,-1).length-1);
ans= Counter + ans;
lastIndex ++;
}
System.out.println(ans);
答案 0 :(得分:1)
您可以尝试这样的事情:
String myString = "ASADASAD"; // or "AAAAAAAAAA"
String stringToFind = "ASAD"; // or "AAA"
int offset = 0;
int count = 0;
while (offset < myString.length())
{
int index = myString.indexOf(stringToFind, offset);
if (index < 0)
break;
count++;
offset = index + 1;
}