Java 字符串在我的程序中计算不正确
我是JAVA编程新手,现在我面临一个奇怪的情况。我将确认变量设置为字符串类型,它将保存用户输入。当用户输入“是”时,程序应该创建一个新用户,但它没有。相反,它会引起“进程被用户取消”的错误警报。convirmation变量的计算似乎不正确。有什么建议吗,伙计们。谢谢 这是我的代码(虽然很简单): 这是输出:Java 字符串在我的程序中计算不正确,java,Java,我是JAVA编程新手,现在我面临一个奇怪的情况。我将确认变量设置为字符串类型,它将保存用户输入。当用户输入“是”时,程序应该创建一个新用户,但它没有。相反,它会引起“进程被用户取消”的错误警报。convirmation变量的计算似乎不正确。有什么建议吗,伙计们。谢谢 这是我的代码(虽然很简单): 这是输出: Create new user Enter first name : fin Enter last name : fin Are you sure? yes yes Process is c
Create new user
Enter first name : fin
Enter last name : fin
Are you sure?
yes
yes
Process is canceled by user
使用
而不是
if(confirmation == "yes")
.equals()
比较两个字符串的值<代码>=比较内存引用以查看它们是否指向同一对象。
使用equals进行字符串比较。“是”。equals(确认)使用
equals
方法比较对象的相等性(String
s、Integer
s和其他),而不是使用=
。你应该解释OP学习的原因,而不仅仅是发布答案。或者“是”。equals(确认)可以避免NPeth。这解决了我的问题。但是,为什么我们不能在这种情况下使用“==”。我做了一个简单的程序来测试“==”。我创建了字符串a=“yes”,然后使用:if(a==“yes”)?System.out.println(“正常”):System.out.println(“不正常”);它的评估是正确的。为什么我的确认变量失败了?你能解释一下吗?谢谢.equals()
比较两个字符串的值=
比较内存引用以查看它们是否指向同一对象。hmm。。对我来说还是有点困惑…:)但是谢谢你的解决方案。
if (confirmation.equals("yes")) {
}
if(confirmation == "yes")