只是查看过去的试卷,偶然发现以下问题对我来说没什么意义:
以下代码旨在以适当的方式向用户致意:
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);
}
问题是为什么程序可能不会执行程序员的意图。目前缺少一台笔记本电脑(上面有饮料!)我无法用不同的输入等来测试代码。据我所知,唯一的问题是它不会要求用户提供另一个输入名称,如果它是空白的,只是终止程序。我会用这个作为答案,但它会在问题的后期直接提出,这让我觉得这不是他们正在寻找的答案。代码还有其他问题吗?
另一个String.equals
问题,取代:
if (name == "" )
同
if (name.equals(""))
==
运算符比较对象引用,您需要使用String.equals
来比较String
内容。或者你可以使用:
if (name.IsEmpty())
它使用== ""
而不是.equals("")
,或者更好,.isEmpty()
。
使用String#equals()
而不是==
来检查字符串相等性。
唯一的问题是String comparison
使用==
运算符。这不会产生预期的结果。 ==
运算符比较String Reference
值,而不是内容。
如果打算比较字符串的equals
,则应始终使用contents
方法进行字符串比较。
您应该使用equals()方法检查字符串相等性。在字符串的情况下==
运算符只检查两个字符串是否引用相同的字符串对象
if (name == "" )
should be
if (name.equals("") )
或者您也可以使用String.isEmpty()来检查字符串是否是空的
if (name.isEmpty())
更改:
if (name == "" )
至:
if (name.equals(""))
它将字符串与==
而不是.equals()
进行比较。
qazxsw poi比较对象引用。它不会比较两个字符串的内容。
问题是,你不能用字符串做==。您必须使用name.equals方法
对不起,我不能留下评论。那么,当你写这个程序时,你的意思是什么呢?我想,它应该打印两个“println()”中的一个 - 哪个? 2. Mybee你应该插入一些“while”循环,这将运行直到用户输入非空字符串:
==
PS。对不起,我不能留下评论,我看到没有任何批准的答案......