为什么我不能将TextArea中的文本与String进行比较?

时间:2014-01-05 23:25:55

标签: java string if-statement jbutton jtextarea

所以我显然遗漏了一些完全明显的东西。我有一个按钮和一个动作助手连接到它。当我单击按钮时,我想运行一个if语句,它接受TextArea的内容并将其与String进行比较。像所以:

String a = "hello";
JTextArea area = new JTextArea("type something");
JButton button = new JButton("Go");

button. [insert actionlistener crap]

    //here's the important part:
    if (area.getText() == "hello"){
        //this will not be executed
    }

真的很奇怪。我甚至通过调试器和那个if语句,这两个项目都是“你好”。但它会跳过它!我做错了什么?

编辑:很多人都在说“使用.equals”。谁能告诉我为什么?

5 个答案:

答案 0 :(得分:5)

你应该area.getText(),这是一种方法,而不是财产。

另外,您应该将它们与equals进行比较,而不是==

所以

"hello".equals(area.getText())

是要走的路。

答案 1 :(得分:3)

您需要在方法equals()的帮助下比较String

答案 2 :(得分:3)

您需要使用String.equals()来比较这两者。不是==。

那应该可以解决问题。

答案 3 :(得分:2)

将java中的字符串与equals()进行比较,而不是==。

答案 4 :(得分:1)

其他人指出需要String.equals

原因是,==将检查两个对象是否实际上是同一个对象,即具有相同的内存地址。