对于我的问题,当我已经添加了一个问题(“我在哪里?”)在数组中,当它回送并询问另一个问题输入时,如果我输入完全相同的问题(“我在哪里?”),它仍然会提示我写一个答案,而不是说这个问题以前问过,我想让它回答之前问过的问题,而不是继续循环问问题。
public void botaddquestion(){
do{
Scanner user = new Scanner(System.in);
System.out.print("[AI] Question input ==>");
input = user.nextLine();
if(!input.equals("end")){
questionarray.add(input);
System.out.print("[AI] Answer input ==>");
answerarray.add(user.nextLine());
}else if(!questionarray.equals(input)){
System.out.println("This question has been asked before");
}
}while(!input.equals("end"));
System.out.println("[AI] <[END]>");
System.out.println("");
System.out.println("[AI] Script given");
for(int i=0; i<questionarray.size(); i++){
System.out.println(("[AI] Question given is '" +questionarray.get(i))+"'");
System.out.println(("[AI] Answer given is '" +answerarray.get(i))+"'");
}
System.out.println("");
}发布于 2017-07-30 14:38:08
您正在寻找contains方法:
} else if (questionarray.contains(input)) {
// Here -------------^
System.out.println("This question has been asked before");
}发布于 2017-07-30 14:40:08
应该对if语句进行排序和检查
if (questionarray.contains(input)){
System.out.println("This question has been asked before");
} else if(!input.equals("end")){
questionarray.add(input);
System.out.print("[AI] Answer input ==>");
answerarray.add(user.nextLine());
}发布于 2017-07-30 14:40:39
https://stackoverflow.com/questions/45397074
复制相似问题