线程“main”中出现异常 java.util.InputMismatchException

我正在为学校开发一个项目,当我尝试两次使用分隔符输入语句时,我的代码给出了错误: Exception in thread "main" java.util.InputMismatchException 。


我已经尝试过只执行一个输入行并且它有效,但是当我添加另一行时它给了我错误。


Scanner input=new Scanner(System.in);


        input.useDelimiter("##");


        System.out.println("The delimiter is \'##\'");


        System.out.print("Enter the name of product 1, product 2, and product 3: ");

        String prod1 = input.next();

        String prod2 = input.next();

        String prod3 = input.next();


        System.out.print("Enter the quantity of product 1, product 2, and product 3: ");

        int quan1 = input.nextInt();

        int quan2 = input.nextInt();

        int quan3 = input.nextInt();


        System.out.println(prod1+" "+prod2+" "+prod3);

        System.out.println(quan1+" "+quan2+" "+quan3);

预期的结果是,如果我输入fish##banana##icecream###和3##4##5##,那么它会打印fishbananaicecream 3 4 5


哔哔one
浏览 129回答 3
3回答

慕姐8265434

为什么要使用自定义分隔符?您可以简单地接受由新行分隔的输入。    Scanner input=new Scanner(System.in);    System.out.println("Press enter key after every input");    System.out.print("Enter the name of product 1, product 2, and product 3: ");    String prod1 = input.nextLine();    String prod2 = input.nextLine();    String prod3 = input.nextLine();    System.out.print("Enter the quantity of product 1, product 2, and product 3: ");    int quan1 = input.nextInt();    input.nextLine();    int quan2 = input.nextInt();    input.nextLine();    int quan3 = input.nextInt();    input.nextLine();    System.out.println(prod1+" "+prod2+" "+prod3);    System.out.println(quan1+" "+quan2+" "+quan3);

红颜莎娜

此异常由 Scanner 类的实例引发,以指示检索到的令牌与预期类型的模式不匹配,或者检索到的令牌超出范围

眼眸繁星

尝试以下输入: fish##banana##ice cream##3##4##5##我猜想换行符也可能被读取,因此第一个 nextInt 失败。也许您还想input.nextLine()在##处使用和分割字符串?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java