我想知道如何在不使用任何内置JAVA字符串函数的情况下计算字符串中特定子字符串的出现次数。例如:
InputString = "knowbutuknow"
subString = "know"
程序应该将结果返回为2。
编辑:重新提出我的问题。这是我遇到的那些面试问题之一。编辑:这里可以使用像charAt和length这样的基本字符串函数。
答案 0 :(得分:0)
假设您已经知道要搜索的关键字:
像这样的东西。我假设允许String.length
。另外,你需要创建自己的strlen函数。 (这可以通过forach
循环和简单计数来实现" up")
这是未经测试的,可能无法开箱即用,但应该给你一个简短的想法。
String inputString = "knowbutuknow";
String subString = "know";
int matches = 0;
for (int outer = 0; outer <= inputString.length() - subString.length(); outer++){
for (int inner = 0; inner < subString.length(); inner++){
if (inputString.charAt(outer + inner) == subString.charAt(inner)){
// letter matched, proceed.
if (inner == subString.length()-1){
//last letter matched, so a word match at position "outer"
matches++;
//proceed with outer. Room for improvement: Skip next n chars beeing
// part of the match already.
break;
}
}else{
//no match for "outer" position, proceed to next char.
break;
}
}
}
编辑:对不起,混在一些php :)修复它。