我正在尝试创建一个findText()方法来查找字符串中的单词或短语。
Enter a word or phrase to be entered: <Timmy>
"Timmy" instances: 2
如果它正常工作我应该得到这个输出:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException:
String index out of range: 0
但是当我运行此代码时,我收到此错误。我使用// FIX ME标记了代码主体中发生错误的位置。
0
我读到这个错误可能是因为字符串&#34;短语&#34;不是至少38个字符,但这仍然无法帮助我修复代码。您是否有任何解决方案可以解决这段代码如何按预期工作,同时避免StringIndexOutOfBoundsException错误?
答案 0 :(得分:0)
我使用了缓冲读卡器并且必须初始化我。有些功能会为你做这件事。
String usrStr = "There was was once a boy named Timmy. Timmy liked to play in the park.";
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int matchCntr = 0;
int numInstances = 0;
String phrase = "";
System.out.println("Enter a word or phrase to be found: ");
phrase = br.readLine();
for (int i = 0; i < usrStr.length(); i++)
{
if (usrStr.charAt(i) == phrase.charAt(matchCntr))
{ //FIX ME
matchCntr++;
if (matchCntr == phrase.length())
{
numInstances++;
matchCntr = 0;
}
}
else
{
matchCntr = 0;
}
}
System.out.println("\"" + phrase.toString() + "\" instances: " + numInstances);