所以我显然遗漏了一些完全明显的东西。我有一个按钮和一个动作助手连接到它。当我单击按钮时,我想运行一个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”。谁能告诉我为什么?答案 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
。
原因是,==
将检查两个对象是否实际上是同一个对象,即具有相同的内存地址。