我正在努力解决问题,我正在创建一个虚拟的人机界面,人们可以与计算机通话,它会响应你所说的内容。所以我去了一个字符串并将其切成单词(split()
函数),一切都很简单。知道我是否希望PC在字符串中的某些单词时做出响应,但它不会。当我输入一个包含" hi" ,"如何" 或&的字符串时,它会继续终止程序#34;你" 。我已粘贴下面的代码段。
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")
}
}
有什么建议吗?
答案 0 :(得分:0)
如果我看到了这一点,你将两次相同的字符串进行比较,每次都使用不同的字符串。换句话说,响应[I]不能等于&#34; hi&#34;和&#34;如何&#34;。改变&amp;&amp;到|| ;)
答案 1 :(得分:0)
当您使用或(||)
时,您在if语句(&amp;&amp;)中使用了&运算符Corey
答案 2 :(得分:-1)
您可以跟踪要显示的字词数。
int words = 0;
for (int I = 0; I<response1.length; I++) {
if (response[I].equalsIgnoreCase("hi") || response[I].equalsIgnoreCase("how") || response[I].equalsIgnoreCase("you"))
words++;
}
if (words == 3)
System.out.println("It works");
但更好的建议是:
for (int i = 0; i < keywords.length; ++i)
if (!responseP1.contains(keywords[i]))
System.out.println("It does not work");
keywords
是一个列表或数组,由&#34; hi&#34;,&#34;如何&#34;和&#34;你&#34;。