zoukankan      html  css  js  c++  java
  • 关于使用键盘录入Scanner录入不对应类型的错误

    今天发现Scanner键盘录入对象录入不对应的类型的时候下面的Scanner录入会一直使用上一步录入错误时的值,导致程序错误

    代码效果如下:

     1     public static void main(String[] args) {
     2         TreeMap<Student, String> treeMap = new TreeMap<>();
     3         ArrayList<Student> list = new ArrayList<>();
     4         ArrayList<String> list1 = new ArrayList<>();
     5         Scanner sc = new Scanner(System.in);
     6         while (list.size() < 3) {
     7             System.out.println("请输入第" + (list.size() + 1) + "个学生的姓名:");
     8             String name = sc.next();
     9             int age = 0;
    10             while (true) {
    11                 try {
    12                     System.out.println("请输入第" + (list.size() + 1) + "个学生的年龄:");
    13                     age = sc.nextInt();       //键盘录入出错位置
    14                     break;
    15                 } catch (Exception e) {
    16                     System.out.println("请输入整数!");
    17                    // sc = new Scanner(System.in);        需要正确插入改正,帮sc重新开辟空间
    18 
    19                 }
    20             }
    21             Student student = new Student(name, age);
    22             list.add(student);
    23 
    24 
    25         }
    26 
    27         while (list1.size() < 3) {
    28             System.out.println("请输入第" + (list1.size() + 1) + "个学生的地址:");
    29             String dress = sc.next();
    30             list1.add(dress);
    31 
    32 
    33         }
    34         for (int i = 0; i < 3; i++) {
    35             treeMap.put(list.get(i), list1.get(i));
    36 
    37 
    38         }
    39         Set<Map.Entry<Student, String>> entries = treeMap.entrySet();
    40         entries.stream().filter(s -> s.getKey().getName().startsWith("张")).forEach(s -> {
    41             System.out.print("学生信息:");
    42             System.out.print(s.getKey());
    43             System.out.println(",对应的居住地址是:" + s.getValue());
    44 
    45 
    46         });

     错误效果如图:

     修改之后效果图:

    迎风少年
  • 相关阅读:
    【BZOJ3998】弦论(后缀自动机)
    【BZOJ4566】找相同字符(后缀自动机)
    AtomicInteger在实际项目中的应用
    ElasticSearchserver操作命令
    照猫画虎学gnuplot之折线图
    HDU 5667 :Sequence
    mycat 连续分片 -&gt; 按日期(天)分片
    DM8168 unrecoverable error: OMX_ErrorBadParameter (0x80001005) [resolved]
    多线程(一):初识多线程
    Vb.net/VB 声明API函数实现父窗口功能
  • 原文地址:https://www.cnblogs.com/ZYH-coder0927/p/13471760.html
Copyright © 2011-2022 走看看