Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用扫描程序分析逗号分隔的值:不匹配异常_Java - Fatal编程技术网

Java 使用扫描程序分析逗号分隔的值:不匹配异常

Java 使用扫描程序分析逗号分隔的值:不匹配异常,java,Java,我意识到有很多关于这个主题的话题,但我无法找到一个能回应这个案例的话题: Scanner s = new Scanner(input).useDelimiter("(\\s|,)+"); 我有多行输入,格式无法编辑 例如,我有: 一, 0.55,0.20,0.05 1,2,3 正如您所知道的,第一个是一个整数,没有任何分隔符。 接下来,我们有3个双精度字符,由逗号分隔 我成功地获得了nextInt()。 当我尝试nextDouble()时,会出现输入不匹配异常 我已经试着使用英语和我们 那么

我意识到有很多关于这个主题的话题,但我无法找到一个能回应这个案例的话题:

 Scanner s = new Scanner(input).useDelimiter("(\\s|,)+");
我有多行输入,格式无法编辑

例如,我有:

一,

0.55,0.20,0.05

1,2,3

正如您所知道的,第一个是一个整数,没有任何分隔符。 接下来,我们有3个双精度字符,由逗号分隔

我成功地获得了nextInt()。 当我尝试nextDouble()时,会出现输入不匹配异常

我已经试着使用英语和我们

那么,如何读取这些输入呢? 第一个是整数,后面是3个双精度,还有3个整数

以下是相关代码:

Scanner in = new Scanner(System.in); // tried delimiters and locale here
int tests = in.nextInt();
System.out.println(in.nextDouble()); //this is where the input exception occurs

默认情况下,扫描程序使用空白作为分隔符。您可以设置自定义分隔符(本例中为逗号):


不过,如果我使用该分隔符,请更准确地说:“Scanner in=new Scanner(System.in).useDelimiter(“\\s*|,””);我的输出为0。0@WilhelmSorban这就是我没有测试的原因\数字之间的s*匹配,导致值为0.0。我修正了我的答案。谢谢,现在可以了。你能解释一下为什么字符串中有这些字符吗?我以前尝试过使用useDelimiter(“,”),比如在中使用逗号作为分隔符,但这不起作用。此处的文档有点混乱,仅使用逗号不起作用,因为有些数字由空格/换行符(=空格)分隔。这表示
((空格或,)一次或多次)
。请参阅以了解更多信息。事实上,由于默认情况下空格用作分隔符,我认为如果我使用分隔符(“,”),它将是空格或“,”,现在一切都有意义了,谢谢!