Я реализовал простую программу HashMap, в которой хранятся имя и возраст людей. вот мой код:Исключение в потоке main java.util.InputMismatchException
import java.util.*;
class StoreName {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<String, Integer>();
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
String name = sc.nextLine();
int age = sc.nextInt();
map.put(name, age);
}
for (String key : map.keySet())
System.out.println(key + "=" + map.get(key));
}
}
, когда я беру входные данные от nextInt() Сканер бросает InputMismatchException
Exception , но если я вход от nextLine(), а затем разобрать его в междунар то мой код работает properly.Please объяснить меня.
и почему я должен использовать nextInt() или nextDouble() в любом случае, если бы я мог разбирать ввод строки в любой тип.
Возможный дубликат [Проблема с сканером при использовании следующей строки после следующегоXXX] (http://stackoverflow.com/questions/7056749/scanner-issue-when-using-nextline-after-nextxxx) – Tom