为什么扫描仪输入错误?

时间:2015-07-22 12:47:50

标签: java if-statement

输入是一个单词。如果这个单词是你好,它应该打印:你好先生等如果输入不是你好它应该打印:为什么你不打招呼? 问题是它总是打印:为什么不打招呼?这是为什么?

Scanner input =new Scanner(System.in);
String word=input.nextLine();
if(word=="hello"){
    System.out.println("hello sir have a good day");
}
else{
    System.out.println("Why dont you say hello?");
}

1 个答案:

答案 0 :(得分:2)

您必须使用方法equals(),而不是将两个字符串与运算符==进行比较

==运算符检查两个操作数的标识。

在这种情况下,当您在nextLine上调用方法Scanner时,会创建新字符串。因此调用运算符==会导致错误的结果,而是调用equals检查两个字符串的内部内容是否返回true。