0
我正在编写一个简单的聊天机器人,并且我的方法似乎被卡在循环中。 下面是这个方法,我怀疑while循环存在问题,但是我找不到我搞乱的地方。编译和运行除了卡住的循环之外没有问题。下面Chatbot方法卡住循环在Java中
环路发生在一个完整的字符串,声明,循环为特定的关键字,目标,并开始在startPos
private int findKeyword(String statement, String goal, int startPos)
{
String phrase = statement.trim();
int psn = phrase.toLowerCase().indexOf(goal.toLowerCase(), startPos);
while (psn >= 0)
{
String before = " ", after = " ";
if (psn > 0)
{
before = phrase.substring(psn-1, psn).toLowerCase();
}
if (psn + goal.length() < phrase.length())
{
after = phrase.substring(psn + goal.length(), psn + goal.length() + 1).toLowerCase();
}
if (((before.compareTo("a") < 0) || (before.compareTo("z") > 0)) && ((after.compareTo("a") < 0) || after.compareTo("z") > 0))
{
return psn;
}
psn = phrase.indexOf(goal.toLowerCase(), psn + 1);
}
return -1;
}
岂不PSN不断增加,直到它到达语句的结束或有目标在声明中没有更多的情况? – OSG 2014-11-22 04:20:28