我需要幫助我下面的代碼,我不能得到字符串比較正確與問候到deleteNode方法。 我搜索的StackOverflow和How do I compare strings in Java?是有幫助的,特別是與Objects.equals。無法獲得字符串比較合適的
但是,運行該方法貫穿所有if語句,並且項目從未被刪除。 PS,請原諒我的英語,而不是母語。
我的代碼:
public void deleteNode(String clientAddr) {
boolean isFound = false;
for (ClientNode client : srv.connections) {
if (Objects.equals(client.getIpAddr(), clientAddr)) {
isFound = true;
srv.connections.remove(clientAddr);
break;
}
}
if (!isFound) {
System.out.println("Provided address is not found!");
System.exit(0);
}
}
以上是通過所謂:
starNetwork.deleteNode("10.10.10.3");
如果我例如運行以下命令:
它輸出:
false
true
false
我不明白
請移除所有不相關的代碼,並顯示出最小,可運行的例子。 – Carcigenicate
而在'deleteNode'中,如果第一個客戶端不是要刪除的節點,那麼程序將結束。你從不檢查其他客戶。 – Carcigenicate
我想從ArrayList中刪除10.10.10.3。使用簡單的測試,我可以看到Objects.equals(client.getIPAddr,clientAddr)在10.10.10.3中返回true,但我無法將其刪除。 –