我意识到这个主题有很多主题,但我不能对这个案例作出回应:
我有多行输入,无法编辑格式。
例如,我有:
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
答案 0 :(得分:2)
默认情况下,Scanner使用空格作为分隔符。您可以设置自定义分隔符(在本例中为逗号):
Scanner s = new Scanner(input).useDelimiter("(\\s|,)+");