我有一个JTextArea,我正在尝试使用textarea.getText()进行愚蠢的测试
if(textarea.getText() == "")
{
System.out.println("empty string");
}
当我这样做时,即使我将textarea留空或者在其中键入内容,我也不会在屏幕上显示任何内容。
if(textarea.getText() != "")
{
System.out.println("empty string");
}
但是当我这样做时,我会在所有情况下得到“空字符串”消息。
这里有什么问题?
答案 0 :(得分:7)
比较字符串时,您应使用equals
代替==
:
if("".equals(textarea.getText()))
{
System.out.println("empty string");
}
==
将比较引用,它只会在完全相同的String实例的情况下工作。如果要检查String的内容是否相同,则应使用equals方法。
答案 1 :(得分:3)
您的代码应使用.equals():
if(textarea.getText().equals(""))
{
System.out.println("empty string");
}
==比较对象引用而不是对象值
答案 2 :(得分:2)
或者,您可以在这种情况下使用isEmpty方法:
if(textarea.getText().isEmpty())
{
System.out.println("empty string");
}
答案 3 :(得分:1)
请使用“”.equals(textarea.getText())而不是参考比较。 Operator ==比较对象引用。