为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

交互式爱情 2021-05-31 15:14:11
所以我想创建这个存储 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);    }}
查看完整描述

2 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

我自己对此进行了一些测试,我认为\n模式中的 与您的控制台使用的行结尾不匹配。

对我来说,我不得不\r\n改用,但你也可以System.lineSeparator()像这样使用:

src.useDelimiter(",|" + System.lineSeparator());


查看完整回答
反对 回复 2021-06-02
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

它的书写方式,在输入的末尾需要另一个逗号。我建议检查字符串以确保它以逗号结尾,如果不是,请附加一个。

我相信如果你输入Japan,1,2,3,它会给你你想要的输出。


查看完整回答
反对 回复 2021-06-02
  • 2 回答
  • 0 关注
  • 190 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信