【发布时间】:2014-10-23 00:31:46
【问题描述】:
我正在尝试读取多行文件。内容格式如下:( 0, 250, 6.4545, 250 )
我曾尝试使用 use.Delimiter() 函数,如
r = new FileInputStream ("Z:\\RTS\\HW2\\input.txt");
Scanner src = new Scanner(r);
src.useDelimiter("\\{(\\s),\\}+");
if(r!= null)
{
i=0;
while (src.hasNext())
{
System.out.println(src.nextInt()); // Line 84
if(src.hasNext())
a = (double)src.nextInt();
if(src.hasNext())
{
b = (double)src.nextInt();
period[i] = (int)b;
}
if(src.hasNext())
{
c = src.nextDouble();
exTime[i] = c;
}
if(src.hasNext())
d = src.nextDouble();
src.nextLine();
i++;
}
}
我遇到以下异常:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at rm.rmcalc.main(rmcalc.java:84)
我认为不匹配可能是因为扫描仪功能无法识别分隔符。有人可以告诉我我在声明分隔符时是否出错?
【问题讨论】:
-
我不确定我是否完全遵循这一点。使用 nextDouble 读取具有浮点值 (6.4545) 的字段。这不应该引发不匹配,不是吗?
标签: java java.util.scanner delimiter