Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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,看过去的试卷,我无意中发现了下面的问题,这对我来说没有多大意义: 以下代码旨在以适当的方式向用户致意: public static void main( String[] args ) { System.out.println("Enter a name"); String name = EasyIn.getString(); if (name == "" ) System.out.println("You must input a name");

看过去的试卷,我无意中发现了下面的问题,这对我来说没有多大意义:

以下代码旨在以适当的方式向用户致意:

public static void main( String[] args ) {
    System.out.println("Enter a name");
    String name = EasyIn.getString();
    if (name == "" ) 
        System.out.println("You must input a name");
    else 
        System.out.println("Hello, " + name);
}
这个问题问为什么程序不能达到程序员的目的。由于目前缺少笔记本电脑(洒了饮料!),我无法使用不同的输入测试代码。从我所能看出,唯一的问题是,如果输入的名称为空,它不会要求用户输入另一个名称,只是终止了程序。我会用这个作为答案,但后面的问题直接提到了这个问题,这让我觉得这不是他们想要的答案。代码还有其他问题吗?

更改:

if (name == "" )
致:


它使用
==”
而不是
.equals(“”
),或者更好的方法是使用
.isEmpty()
另一个
字符串。equals
问题,替换为:

if (name == "" )

=
操作符比较对象引用,您需要使用
String.equals
来比较
String
内容。或者,您可以使用:

if (name.IsEmpty())

使用
String#equals()
,而不是
=
,来检查字符串的相等性。

唯一的问题是使用
=
运算符进行
字符串比较。这不会产生预期的结果
=
运算符比较
字符串引用
值,而不是内容


如果要比较字符串的
内容
,则应始终使用
equals
方法进行字符串比较。

应使用equals()方法检查字符串的相等性
=
运算符在字符串情况下只检查两个字符串是否引用同一个字符串对象

 if (name == "" )

should be

 if (name.equals("") )
或者您也可以使用检查字符串是否为空

 if (name.isEmpty())

它将字符串与
=
进行比较,而不是与
.equals()
进行比较


=
比较对象引用。它不强制两个字符串的内容。

问题是,不能对字符串执行==操作。您必须使用方法名称。equals

对不起,我无法留下注释。 1.那么,当你写那个程序的时候是什么意思?我想,它应该打印两个“println()”中的一个-哪个? 2.Mybee您应该插入排序循环“while”,直到用户输入非空字符串:

while (!name.equals("")) { ... }

PS.抱歉,我不能留下评论&我看到没有任何经批准的答案…

通常情况下,您不会将
==
用于
String
之类的引用数据类型。是的,此代码还有一个大问题。你可能会感兴趣。
 if (name.isEmpty())
while (!name.equals("")) { ... }