【问题标题】:Exception in thread "main" java.util.InputMismatchException. What did I do wrong?线程 \"main\" java.util.InputMismatchException 中的异常。我做错了什么?
【发布时间】:2022-12-01 01:08:01
【问题描述】:

我编写了以下程序,但一直出现错误:线程“主”java.util.InputMismatchException 中出现异常,我不知道我做错了什么。当我尝试将对象添加到数组列表时似乎发生了错误,但我不确定。

`

try {
            Scanner input = new Scanner(System.in);
            String filePath = "src/dtp/" + input.next();
            File file = new File(filePath);
            input.close();

            Scanner fileScanner = new Scanner(file);
            
            //create empty ArrayList of guests
            ArrayList<Person> guests = new ArrayList<Person>(0);

            for (int i = 0; i < 4; i++) {
                //get name age and sex
                String name = fileScanner.next();
                int age = fileScanner.nextInt();
                String sex = fileScanner.next();

                //get partner or looking for partner
                String next = fileScanner.next();
                boolean lookingForPartner = true;
                boolean single = false;
                String partnerName = "";

                if (next.equalsIgnoreCase("y")) {
                    lookingForPartner = true; 
                    single = true;
                } else if (next.equalsIgnoreCase("n")) {
                    lookingForPartner = false;
                    single = true;
                } else 
                    partnerName = next;
                
                //create object
                System.out.println("test1");
                
                if (single) {
                    Person person = new Person(name, age, sex, lookingForPartner);
                    System.out.println(person);
                    guests.add(person);
                } else {
                    Person person = new Person(name, age, sex, partnerName);
                    System.out.println(person);
                    guests.add(person);
                }
            }
            
            fileScanner.close();

            DinnerTable table = new DinnerTable(guests);
            System.out.println(table);
            
        } catch (DinnerTableException e) {
            System.out.print(e);
            
        }

`

【问题讨论】:

    标签: java object arraylist inputmismatchexception


    【解决方案1】:

    你的问题应该包括输入文件,因为异常与你试图读取的数据有关。

    当扫描器对象检索到的数据与分配给的变量类型不匹配时,将抛出此异常: 例如,如果你尝试int i = sc.nextInt() 而从文件中读取的值是字符串,则抛出异常。

    所以为了避免这种情况,您应该确保文件中的数据输入正确,以匹配代码中读取的每种数据类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多