当我第二次尝试检索数据时,这段代码并没有给我数据。
我不知道为什么我的循环没有给出正确的结果?我可以看到,数据是可用的--它进入验证的if部分,但不返回数据,它转到enters部分并打印没有可用的数据。
//Main class
{
System.out.println("1. Add DNS details");
System.out.println("2. Find matching Domain Name");
System.out.println("3. Exit");
System.out.println("Enter your choice");
//After entering the choice
System.out.println("Enter the IP address to find the domain name");
ip = sc.nextLine();
DomainName = dBO.findDomainName(ip);
}
//FindDomainname.java class
public String findDomainName(String ipAddress) {
String domain=null;
if(domainMap.isEmpty()){
return domain;
}
else
for (Map.Entry<String, String> entry : domainMap.entrySet()) {
String k = entry.getKey();
String v = entry.getValue();
if (ipAddress.equals(v)) {
domain = k;
}
else
{
domain = "No matching domain name found";
}
}
return domain;
}发布于 2020-08-12 12:41:10
流解决方案。当找到匹配时,您的错误不是从循环中断开的。
public String findDomainName(String ipAddress) {
return domainMap.entrySet().stream()
.filter(entry -> entry.getValue().equals(ipAddress))
.findAny().orElse(domainMap.isEmpty() ? null
: "No matching domain name found");
} https://stackoverflow.com/questions/63376615
复制相似问题