【发布时间】:2020-11-29 21:07:47
【问题描述】:
主类,用于输入所有域详细信息,例如域名和 IP 地址。我需要检查为 ip 地址输入的重复值。我需要一个 hashmap 代码来检查重复值。 输入为www.gmail.net 195.116.254.154 输出就像 - 如果 ipAddress 是 195.116.254.154 输出应该是www.gmail.net
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
DomainBO dBO = new DomainBO();
Map<String, String> domainMap = new HashMap<>();
dBO.setDomainMap(domainMap);
String ip, Dname;
int flag = 0;
int input;
int count = 0;
String DomainName = null;
do {
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");
input = sc.nextInt();
sc.nextLine();
if (input == 1) {
count++;
System.out.println("Enter the domain name");
Dname = sc.nextLine();
System.out.println("Enter the IP address");
ip = sc.nextLine();
if (isValid(Dname) || IPAddressValidator(ip))// check for valid ipaddress and name
{
dBO.addDNSDetails(Dname, ip);
flag = 0;
}
else
flag = 0 ;
}
if (input == 2) {
if (count > 0) {
System.out.println("Enter the IP address to find the domain name");
ip = sc.nextLine();
DomainName = dBO.findDomainName(ip);
if (DomainName == null) {
System.out.println("No matching domain name found");
flag = 0;
} else {
System.out.println(DomainName);
flag = 0;
}
}
}
if (input == 3) {
System.out.println("Thank you for using the Application");
flag = 1;
break;
}
} while (flag == 0);
}
DomainBO.java 类用于输入域详细信息并通过输入 Ipaddress 检索域名。
public class DomainBO {
private Map<String,String> domainMap;
public Map<String,String> getDomainMap() {
return domainMap;
}
public void setDomainMap(Map<String,String> domainMap) {
this.domainMap = domainMap;
}
//This method should add the domainName as key and their ipAddress as value into a Map
public void addDNSDetails (String domainName,String ipAddress)
{
if(domainMap.containsKey(ipAddress))
{
return;
}
else
{
domainMap.put(domainName, ipAddress);
}
}
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;
}
}
【问题讨论】:
-
你有什么问题?您已经检查是否已经有 .containsKey(ipAddress) 的列表
-
你需要问一个问题。
-
我没有检查重复值的代码。我的代码接受重复的 IP 地址值
-
而且,如果我添加了多个域值,它只会显示最近添加的域值。添加的第一个没有显示
标签: java string collections hashmap java.util.scanner