java:扫描仪在使用 useDelimiter 时要求额外的值

所以我想创建这个存储 4 个值的程序。第一个是字符串,其余 3 个是整数。但是,当我输入 4 个值并按 Enter 键时,出现错误,java.util.InputMismatchException但是当我输入 5 个值时,我得到了 for 值的结果。例如,假设我输入以下值:


Japan,1,2,3

我会得到java.util.InputMismatchException错误。如果我输入以下值:-


Japan,1,2,3,4

我得到了我想要的输出:-


Japan,1,2,3

为什么会这样?这是我的代码


public class satisfaction {


    public static void main(String args[])

    {

        Scanner src= new Scanner(System.in);

        src.useDelimiter("\\,|\\n");

        String name=src.next();

        int a=src.nextInt();

        int b=src.nextInt();

        int c=src.nextInt();

        System.out.println(name+","+a+","+b+","+c);

    }


}


交互式爱情
浏览 191回答 2
2回答

慕雪6442864

我自己对此进行了一些测试,我认为\n模式中的 与您的控制台使用的行结尾不匹配。对我来说,我不得不\r\n改用,但你也可以System.lineSeparator()像这样使用:src.useDelimiter(",|" + System.lineSeparator());

繁星淼淼

它的书写方式,在输入的末尾需要另一个逗号。我建议检查字符串以确保它以逗号结尾,如果不是,请附加一个。我相信如果你输入Japan,1,2,3,它会给你你想要的输出。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java