使用Scanner:mismatch exception解析逗号分隔值

时间:2015-02-17 01:41:18

标签: java

我意识到这个主题有很多主题,但我不能对这个案例作出回应:

我有多行输入,无法编辑格式。

例如,我有:

  

1

     

0.55,0.20,0.05

     

1,2,3

如您所知,第一个是整数,并且没有任何分隔。 接下来,我们有3个双打,用逗号分隔。

我成功获得了nextInt()。 当我尝试nextDouble()时,我收到输入不匹配异常。

我已经尝试过使用Locale English和US。

那么如何阅读这些输入呢? 第一个是int,后面是3个双打,另外3个是int。

以下是相关代码:

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

1 个答案:

答案 0 :(得分:2)

默认情况下,Scanner使用空格作为分隔符。您可以设置自定义分隔符(在本例中为逗号):

 Scanner s = new Scanner(input).useDelimiter("(\\s|,)+");