【发布时间】:2012-05-31 09:50:13
【问题描述】:
我有一个文本 (file.txt) 文件。此文件加载到扫描仪中。
文件中有不同的行,每行有两个双精度值和一个除以空格的整数值。
像这样:
1.0 1.2 2
0.9 1.0 10
50.4 9.2 20
我需要实现三个数组。
每个数组对应一个列。比如:
double[] x = {1.0,0.9,50.4}
double[] y = {1.2,1.0,9.2}
double[] z = {2,10,20}
我尝试使用此代码:
double x[]= new double [3];
double y[]= new double [3];
double z[]= new double [3];
File f = new File(ClassLoader.getSystemResource(file.txt).toURI());
Scanner sc = new Scanner(f);
for (int i=0;j<3;i++){
x[i] = sc.nextDouble();
y[i] = sc.nextDouble();
z[i] = sc.nextDouble();
}
但是当执行第一个 nextDouble() 时,会出现“未捕获”(java.util.InputMismatchException) 异常。
我做错了什么?
感谢您的任何提示。
【问题讨论】:
-
打印
sc.next()并查看扫描仪尝试将什么解析为双精度。 -
我试过了。实际上,在 4 次迭代中,它采用了第一行的三个数字和第四行的第一个数字,所以应该是这样,但是当我尝试使用 nextDouble() 进行相同操作时,它在第一次迭代中失败
标签: java java.util.scanner uncaught-exception