黑马程序员技术交流社区

标题: 技术大神求指导 [打印本页]

作者: 段黄军    时间: 2015-5-29 20:06
标题: 技术大神求指导
  1. package cn.dhjFx;

  2. import java.io.*;
  3. import java.util.*;
  4. import java.util.Map.Entry;

  5. /*
  6. * 在控制台输入3个学生(姓名,学号)姓名可以重复但是学号是唯一的,
  7. * 将输入的这3个学生存放到集合里然后在控制台打印出来并且修改其中任意一个学号对应的学生姓名
  8. */
  9. public class Test002 {
  10.         public static void main(String[] args) throws Exception{
  11.                 BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
  12.                 Map<Integer,String> map = new HashMap<Integer,String>();
  13.                 String str =null;
  14.                 while((str=buf.readLine())!=null){
  15.                 String[] cha = str.split(",");
  16.                 map.put(Integer.parseInt(cha[1]),cha[0]);
  17.                 }
  18.                 Set<Entry<Integer, String>> set = map.entrySet();
  19.                 Iterator<Map.Entry<Integer, String>> it = set.iterator();
  20.                 while(it.hasNext()){
  21.                         Map.Entry<Integer, String> s = it.next();
  22.                         int inte = s.getKey();
  23.                         String ss =s.getValue();
  24.                         System.out.println(inte+"    "+ss);
  25.                        
  26.                 }
  27.                
  28.         }
  29. }
复制代码

为什么我运行的时候总是会报异常
作者: nbcallum    时间: 2015-5-29 20:16
兄弟  map.put(Integer.parseInt(cha[1]),cha[0]); 这行错了 还有你这个根本打印不出来的,因为readLine()是阻塞时方法啊,应该这样。。



import java.io.*;
import java.util.*;
import java.util.Map.Entry;

/*
* 在控制台输入3个学生(姓名,学号)姓名可以重复但是学号是唯一的,
* 将输入的这3个学生存放到集合里然后在控制台打印出来并且修改其中任意一个学号对应的学生姓名
*/
public class Test {
        public static void main(String[] args) throws Exception{
                BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
                Map<Integer,String> map = new HashMap<Integer,String>();
                String str =null;
                while((str=buf.readLine())!=null){
                String[] cha = str.split(",");
                map.put(Integer.parseInt(cha[0]),cha[1]);
                System.out.println(map);
                Set<Entry<Integer, String>> set = map.entrySet();
                Iterator<Map.Entry<Integer, String>> it = set.iterator();
                while(it.hasNext()){
                        Map.Entry<Integer, String> s = it.next();
                        int inte = s.getKey();
                        String ss =s.getValue();
                        System.out.println(inte+"    "+ss);
                       
                }
                }
               
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2