簡體   English   中英

JAVA .equalsIgnoreCase無法正常工作

[英]JAVA .equalsIgnoreCase not working

在服務器類的主要方法中,我有一系列if語句,用於聊天程序的保留關鍵字,我正在嘗試使用變量值和.equalsIgnoreCase方法.equalsIgnoreCase 問題是,即使我的變量具有某個值,在執行程序時,即使變量與if條件之一完全匹配,代碼也始終會進入else子句。 代碼可以很好地編譯,但是我無法弄清楚為什么會這樣。 我在開始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類。 我在這里想念什么嗎? 可能盯着我看:/

您確定String keyword不包含任何結尾的換行符/空格或其他不可打印的字符嗎?

您的輸入中可能有前導/尾隨空格,這將導致不匹配。

嘗試在頂部添加以下語句:

keyword = keyword.trim();

另請參閱整理器

Collat​​or類執行對語言環境敏感的String比較。 您可以使用此類為自然語言文本構建搜索和排序例程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM