对于我的问题,当我已经在数组中添加了一个问题(“我在哪里?”)时,当它回送并询问另一个问题输入时,如果我输入完全相同的问题(“我在哪里?”),它仍然会提示我写一个答案,而不是说之前问过这个问题。我希望它回答问题,而不是继续循环问问题。
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("");
}
答案 0 :(得分:1)
您正在寻找contains
方法:
} else if (questionarray.contains(input)) {
// Here -------------^
System.out.println("This question has been asked before");
}
答案 1 :(得分:0)
您的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());
}
答案 2 :(得分:0)
答案 3 :(得分:0)
System.out.print("[AI] Question input ==>");
input = user.nextLine();
if(input.equals("end")){
break;
}
if(questionarray.constains(input)){
System.out.println("This question has been asked before");
continue;
}
questionarray.add(input);
System.out.print("[AI] Answer input ==>");
answerarray.add(user.nextLine());
答案 4 :(得分:0)
您使用If($val>=$sum/2) break;
存储此问题字符串。这是一个演示,
HashSet
输出:
Set set = new HashSet<String>();
System.out.println(set.add("hello"));
System.out.println(set.add("hello"));