小编pra*_*rak的帖子

线程主java.util.InputMismatchException中的异常

我正在实现一个简单的HashMap程序,它存储人名和年龄.这是我的代码:

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));
    }
}
Run Code Online (Sandbox Code Playgroud)

当我从nextInt()获取输入时,Scanner会抛出InputMismatchException异常,但如果我从nextLine()获取输入然后将其解析为int,那么我的代码就会正常运行.请解释一下.

如果我可以将字符串输入解析为任何类型,为什么我应该使用nextInt()或nextDouble().

java

1
推荐指数
1
解决办法
380
查看次数

标签 统计

java ×1