Joe*_*phy 1 java if-statement conditional-statements
在我的服务器类的主要方法中,我有一系列关于if聊天程序的保留关键字的语句,我正在尝试使用变量的值和.equalsIgnoreCase方法来遍历.问题是即使我的变量保持一定的值,在执行程序时,else即使变量和其中一个if条件之间存在完全匹配,代码也会一直进入子句.代码编译得很好,但我无法弄清楚为什么会发生这种情况.我在开始if语句之前打印了变量的值,以验证它是否保持正确的值.我的代码中的snipet如下所示:
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);
}
Run Code Online (Sandbox Code Playgroud)
无论关键字的值是什么,它总是选择最终的else语句.如你所见,这将导致我总是打电话给我的newUser班级.我在这里错过了什么吗?可能会盯着我的脸:/
您的输入中可能有前导/尾随空格,这会导致不匹配。
尝试在顶部添加此语句:
keyword = keyword.trim();
Run Code Online (Sandbox Code Playgroud)