如何使Jtextarea与字符串可比较

时间:2017-11-18 10:22:04

标签: java jtextarea

我试图制作聊天机器人但是当我输入时总是出现错误:

if(Write == "hi"){
    Reply.setText("HI!");
}

它会出现错误:jtextarea incomparable with String

我该怎么办?

2 个答案:

答案 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!");
}

命名约定

最后请注意,您应该坚持命名惯例。变量名称和方法名称应始终以小写字符开头。大写仅用于类名(和常量)。所以你应该写writereply

if ("hi".equals(write.getText())) {
    reply.setText("HI!");
}