注册 登录
编程论坛 JAVA论坛

java集合map问题

逆水寒刘 发布于 2016-03-14 14:59, 3058 次点击
public static void main(String[] args) {
        // TODO Auto-generated method stub
        Map<Integer,String> student=new HashMap<Integer,String>();
        Scanner scan=new Scanner(System.in);
        String st1=new String("刘萌萌");
        String st2=new String("徐向前");
        String st3=new String("胡歌");
        student.put(1, st1);
        student.put(2,st2);
        student.put(3, st3);
        for(Integer userNo:student.keySet()){
            System.out.println(userNo+":"+student.get(userNo));
        }
        String user4;
        System.out.println("请输入下个名字:");
        user4=scan.next();
        int num;
        System.out.println("请输入学号:");
        num=scan.nextInt();
        student.put(Integer.valueOf(num), String.valueOf(user4));
        for(Integer userNo:student.keySet()){
            System.out.println(userNo+":"+student.get(userNo));
        }
    }
问题:在手动输入第四个键值对时,总出错。如
1:刘萌萌
2:徐向前
3:胡歌
请输入下个名字:
经典
请输入学号:
4
1:刘萌萌
2:徐向前
3:胡歌
4:缁忓吀
第四个输出的键值对与输入的不符。
6 回复
#2
grmmylbs2016-03-14 15:14
我运行了下,是好的啊
1:刘萌萌
2:徐向前
3:胡歌
请输入下个名字:
经典
请输入学号:
4
1:刘萌萌
2:徐向前
3:胡歌
4:经典
#3
逆水寒刘2016-03-14 16:10
回复 2楼 grmmylbs
我只有在输入英文字符串的时候才能正常显示出来,只要是中文就是一些生僻或乱码。不知道是哪里的编码设置问题?
#4
grmmylbs2016-03-14 16:18
那应该是eclipse设置的问题,百度一下有很多解决方案,你试试。
#5
逆水寒刘2016-03-14 16:34
我这里系统设置的也是UTF-8,myeclipse里面也设置成了UTF-8,不知道使用Scanner接受中文,输入,为什么就会输出乱码
#6
逆水寒刘2016-03-14 16:53
有的说是控制台默认接受输入编码方式为ISO-81*什么的,但是不知道该怎么改回utf-8
#7
ffs19922016-03-21 10:43
workspease
1