我的任务是创建一个简单的聊天机器人,使用户能够创建问题和答案,然后将其存储到两个数组中。因此,只要用户输入相同的问题,聊天机器人就能打印出答案。
例如,我打算运行的是: 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");
}
}
答案 0 :(得分:-1)
==
运算符比较两个对象的哈希码。因为两个字符串可能不一样(即使它们是相同的),你必须逐个字符地检查。可以为您执行此操作的内置方法是String.equals()
。如果大写和小写无关紧要,您可以使用String.equalsIgnoreCase()
。
示例:
"test".equals("test") true
"TEST".equals("test") false
"TEST".equalsIgnoreCase("test") true