在服务器类的主要方法中,我有一系列针对聊天程序的保留关键字的if语句,我正在尝试使用变量的值和.equalsIgnoreCase方法一起遍历。问题在于,即使变量具有某个值,执行程序时,即使变量与else条件之一完全匹配,代码也始终会进入if子句。代码可以很好地编译,但是我无法弄清楚为什么会这样。在开始if语句之前,我已经打印了变量的值以验证其是否正确。我的代码片段如下所示:

System.out.println("Keyword is : " + keyword);
if (keyword.equalsIgnoreCase("who"))
{
  System.out.println("calling who function");
  whoFunction(address, socket, port);
}
else if (keyword.equalsIgnoreCase("whoami"))
{
  whoami(address, socket, port, clientAddress);
}
else if (keyword.equalsIgnoreCase("all"))
{
  all(message);
}
else if (keyword.equalsIgnoreCase("Bye"))
{
  bye(address, socket, port, clientAddress);
}
else
{
  newUser(keyword, address, searchListLength, clientAddress, port);
}


不管关键字的值是多少,它始终会选择最终的else语句。如您所见,这将导致始终调用我的newUser类。我在这里想念什么吗?可能盯着我看:/

最佳答案

您确定字符串keyword不包含任何结尾的换行符/空格或其他不可打印的字符吗?

关于java - JAVA .equalsIgnoreCase无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11605422/

10-10 12:51