如何将 Jtextarea 与字符串进行比较
How To Turn A Jtextarea Comparable With String
我正在尝试制作一个聊天机器人,但在我输入时它总是出现错误:
if(Write == "hi"){
Reply.setText("HI!");
}
它会出现错误:jtextarea incomparable with String
我该怎么办?
问题的背景不多,但我想你正在寻找
if ("hi".equals(Write.getText()))
顺便说一下,从不 将字符串与 ==
进行比较,除非您确实希望它们与字符串 class 的实例完全相同。
解释
您不能使用 ==
比较完全不同的对象。 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!");
}
命名约定
最后请注意,您应该遵守 命名约定 。变量名和方法名都应始终以 小写字符 开头。大写仅用于 class 名称(和常量)。所以你应该写 write
和 reply
:
if ("hi".equals(write.getText())) {
reply.setText("HI!");
}
我正在尝试制作一个聊天机器人,但在我输入时它总是出现错误:
if(Write == "hi"){
Reply.setText("HI!");
}
它会出现错误:jtextarea incomparable with String
我该怎么办?
问题的背景不多,但我想你正在寻找
if ("hi".equals(Write.getText()))
顺便说一下,从不 将字符串与 ==
进行比较,除非您确实希望它们与字符串 class 的实例完全相同。
解释
您不能使用 ==
比较完全不同的对象。 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!");
}
命名约定
最后请注意,您应该遵守 命名约定 。变量名和方法名都应始终以 小写字符 开头。大写仅用于 class 名称(和常量)。所以你应该写 write
和 reply
:
if ("hi".equals(write.getText())) {
reply.setText("HI!");
}