我正在努力解决一个问题,我正在创建一个虚拟人机界面,可以与计算机通话,它会响应您的意见。所以我去了一个字符串,并把它切成文字(split()
函数),都很简单。知道我是否希望PC在字符串中包含某些单词时作出响应,但事实并非如此。当我放入包含“hi”,“how”或“you”的字符串时,它会不断终止程序。我粘贴了下面的代码片段。如何在if语句中读取多个.equals语句
String responseP1 = userInput.next();
String[] response1 = responseP1.split(" ");
for (int I = 0; I<response1.lenght; I++){
if (response[I].equalsIgnoreCase("hi")
&& response[I].equalsIgnoreCase("how")
&& response[I].equalsIgnoreCase("you")){
System.out.println("It works")
}
}
有什么建议吗?
请改变'I'到'i'在循环,这是奇怪:/ – Maroun 2014-11-02 09:16:31
'response [I] .equalsIgnoreCase(“hi”)&& response [I] .equalsIgnoreCase(“how”)&& response [I] .equalsIgnoreCase(“you”)''可以更简洁地写成'false' 。 – 2014-11-02 09:18:35
a == b&& a==c;当b!= c时,整个表达式的计算结果为false,并且if的主体从不计算。要了解更多,请研究[二元布尔代数](http://en.wikipedia.org/wiki/Two-element_Boolean_algebra) – YoYo 2014-11-02 09:30:39