Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串在我的程序中计算不正确_Java - Fatal编程技术网

Java 字符串在我的程序中计算不正确

Java 字符串在我的程序中计算不正确,java,Java,我是JAVA编程新手,现在我面临一个奇怪的情况。我将确认变量设置为字符串类型,它将保存用户输入。当用户输入“是”时,程序应该创建一个新用户,但它没有。相反,它会引起“进程被用户取消”的错误警报。convirmation变量的计算似乎不正确。有什么建议吗,伙计们。谢谢 这是我的代码(虽然很简单): 这是输出: Create new user Enter first name : fin Enter last name : fin Are you sure? yes yes Process is c

我是JAVA编程新手,现在我面临一个奇怪的情况。我将确认变量设置为字符串类型,它将保存用户输入。当用户输入“是”时,程序应该创建一个新用户,但它没有。相反,它会引起“进程被用户取消”的错误警报。convirmation变量的计算似乎不正确。有什么建议吗,伙计们。谢谢

这是我的代码(虽然很简单):

这是输出:

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")