首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我已经在list1array中添加了一个list1,如何防止添加完全相同的list1

如果我已经在list1array中添加了一个list1,如何防止添加完全相同的list1
EN

Stack Overflow用户
提问于 2017-07-30 14:34:07
回答 5查看 36关注 0票数 2

对于我的问题,当我已经添加了一个问题(“我在哪里?”)在数组中,当它回送并询问另一个问题输入时,如果我输入完全相同的问题(“我在哪里?”),它仍然会提示我写一个答案,而不是说这个问题以前问过,我想让它回答之前问过的问题,而不是继续循环问问题。

代码语言:javascript
复制
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("");
}
EN

回答 5

Stack Overflow用户

发布于 2017-07-30 14:38:08

您正在寻找contains方法:

代码语言:javascript
复制
} else if (questionarray.contains(input)) {
    // Here -------------^
    System.out.println("This question has been asked before");
}
票数 1
EN

Stack Overflow用户

发布于 2017-07-30 14:40:08

应该对if语句进行排序和检查

代码语言:javascript
复制
    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());                
    }
票数 0
EN

Stack Overflow用户

发布于 2017-07-30 14:40:39

  1. 使用Set (HashSet或TreeSet,取决于排序对你是否重要)代替list。
  2. 关于已经存在的问题的验证的"else if“应该在if
  3. !end之前,因为第二个if是向数组实际添加值的if,而你想要防止这种情况发生。
  4. 你的验证是错误的,你不应该在list和输入字符串之间做相等。这永远不会是相等的。而是使用包含调用(来自Set接口的方法)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45397074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档