输入是一个单词。如果这个单词是你好,它应该打印:你好先生等如果输入不是你好它应该打印:为什么你不打招呼? 问题是它总是打印:为什么不打招呼?这是为什么?
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?");
}
答案 0 :(得分:2)
您必须使用方法equals()
,而不是将两个字符串与运算符==
进行比较
==运算符检查两个操作数的标识。
在这种情况下,当您在nextLine
上调用方法Scanner
时,会创建新字符串。因此调用运算符==
会导致错误的结果,而是调用equals
检查两个字符串的内部内容是否返回true。