#Java帮助。创建一个简单的聊天机器人,使用户能够创建自己的问题和答案

时间:2017-07-15 19:10:03

标签: java arrays netbeans chatbot

我的任务是创建一个简单的聊天机器人,使用户能够创建问题和答案,然后将其存储到两个数组中。因此,只要用户输入相同的问题,聊天机器人就能打印出答案。

例如,我打算运行的是: Bot:你要创建的第一个问题。 网友:我叫什么名字? Bot:响应是? 用户:汤姆 Bot:你要创造的第二个问题。 用户:我有多高? Bot:响应是? 你:179厘米 你:我有多高? 机器人:179厘米 你:我叫什么名字? Bot:汤姆

以下是我的源代码:

public static void main(String [] args){

       String reply = "";
       String[] storeQuestions = new String [100];
       String[] storeAnswers = new String [100];

       do { 
            /* first question*/
            System.out.println("Bot: 1st question that you want to create.");
            Scanner input = new Scanner (System.in);
            System.out.print("You: ");
            String createQuestion = input.nextLine(); // change to string
            System.out.println("Bot: and the response is?");
            System.out.print("You: ");
            String answer = input.nextLine();

            /* storing question and answer into the two arrays */
            storeQuestions[0] = createQuestion;
            storeAnswers[0] = answer;

            /* second question */
            System.out.println("Bot: 2nd question that you want to create.");
            System.out.print("You: ");
            createQuestion = input.nextLine();
            System.out.println("Bot: and the response is?");
            System.out.print("You: ");
            answer = input.nextLine();

            storeQuestions[1]= createQuestion;
            storeAnswers[1] = answer;
            System.out.print("You: ");
            reply = input.nextLine();

            if(storeQuestions[0]==createQuestion) {
                System.out.println("Bot: "+storeAnswers[0]);
            }
            else if ( storeQuestions[1]==createQuestion) {
                System.out.println("Bot: "+storeAnswers[1]);
            }
        }while(reply!="bye");               
}    

}

1 个答案:

答案 0 :(得分:-1)

==运算符比较两个对象的哈希码。因为两个字符串可能不一样(即使它们是相同的),你必须逐个字符地检查。可以为您执行此操作的内置方法是String.equals()。如果大写和小写无关紧要,您可以使用String.equalsIgnoreCase()

示例:

"test".equals("test")            true
"TEST".equals("test")            false
"TEST".equalsIgnoreCase("test")  true