我试图制作聊天机器人但是当我输入时总是出现错误:
if(Write == "hi"){
Reply.setText("HI!");
}
它会出现错误:jtextarea incomparable with String
我该怎么办?
答案 0 :(得分:0)
在使用的问题中没有多少上下文,但我想你正在寻找
if ("hi".equals(Write.getText()))
顺便说一句,永远不会将字符串与==
进行比较,除非你真的希望它们与String类的实例完全相同。
答案 1 :(得分:0)
使用==
无法将完全不同的对象相互比较。 Write
的类型为JTextArea
,"hi"
的类型为String
。这些对象没有任何共同点,因此编译器抱怨。
您可能希望将 JTextArea
中存储的文本与文本"hi"
进行比较。您可以使用JTextArea#getText
方法(documentation)来访问此文字。
现在请注意,除非您知道自己做了什么,否则您应该使用String
来比较==
。结果将不是您的预期。请改用String#equals
。以下是有关此主题的更多信息:How do I compare strings in Java?
所以你的代码应该是这样的:
if ("hi".equals(Write.getText())) {
Reply.setText("HI!");
}
最后请注意,您应该坚持命名惯例。变量名称和方法名称应始终以小写字符开头。大写仅用于类名(和常量)。所以你应该写write
和reply
:
if ("hi".equals(write.getText())) {
reply.setText("HI!");
}