java:Scanner在使用useDelimiter时要求额外的值
所以我想创建一个存储4个值的程序。第一个是字符串,其余3个是整数。但是,当我输入4个值并按enter键时,会出现一个错误java:Scanner在使用useDelimiter时要求额外的值,java,java.util.scanner,delimiter-separated-values,Java,Java.util.scanner,Delimiter Separated Values,所以我想创建一个存储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
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);
}
}
按照编写的方式,它需要在输入的末尾再加一个逗号。我建议检查字符串以确保它以逗号结尾,如果不是,则追加一个逗号
我相信,如果您输入
日本,1,2,3,
它将为您提供所需的输出。我自己对此进行了一些测试,我认为模式中的\n
与您的控制台使用的行尾不匹配
对我来说,我必须使用\r\n
,但您也可以使用System.lineSeparator()
,例如:
src.useDelimiter(",|" + System.lineSeparator());
是的,但我不想最后陷入昏迷。我还能做什么吗?是的,你可以通过编程添加逗号。也可能有办法改变delimeter,但我不确定