【发布时间】:2020-10-26 23:23:11
【问题描述】:
一个月前我开始接触Java,那时一直在学习。我遇到了一个问题。我需要将 N 个用户输入对(键:值)获取到 Java 中的 HashMap,如下面的代码中所述。输入一个键:值对后,这给了我一个 InputMismatchException。据我所知,我无法弄清楚声明的循环中是否存在语法错误并将用户输入值对分配给声明的 HashMap。如果有人可以详细说明这一点,我将非常感激,希望用简单的术语,因为我是一个非常初学者。非常感谢您的关心。
public static void main (String [] arg){
HashMap<String, Integer> phonebook = new HashMap<>();
Scanner obj = new Scanner(System.in);
//N= Number of contacts to be entered by the user
int N = obj.nextInt();
//Getting N num of user inputs for names and contacts
while(N>0){
for (int i=0;i<N;i++)
{
//we need to input name and contact value pairs
//in same line
String name = obj.nextLine();
int contact = obj.nextInt();
//assigning user input key:value pairs to hashmap
phonebook.put(name, contact);
}
//setting key:value pairs to display
Set<String> keys = phonebook.keySet();
for(String i:keys)
{
System.out.println(i +"="+phonebook.get(i));
}
N--;
}
}
【问题讨论】:
-
我忘了说,用户输入的键:值对应该像“John” 1234(之间的空格)一样输入一行。当我尝试以这种格式测试用户输入时,我得到 InputMismatchException。为我的错误道歉。你能帮帮我吗?
-
顺便说一句,正确缩进代码可以促进理解。
标签: java hashmap user-input