我有一个文本 (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);
String aux;
for (int i=0;i<3;i++){
aux = sc.next();
x[i] = Double.parseDouble(aux);
aux = sc.next();
y[i] = Double.parseDouble(aux);
aux = sc.next();
z[i] = Double.parseDouble(aux);
}
但是当第一个 Double.ParseDouble() 我得到“NumberFormatException”。
我进行了调试,变量 aux 具有双精度值(例如:1.0),因此 Double.parseDouble(aux) 应该可以工作。
奇怪的是它说(当异常启动时)“aux”类似于 '1.0(之前带有 ')
有没有办法删除每个符号:比如 ' 或 , 或 . 或“bom”(如“特殊空间”)等等?我的意思是..不需要指定可能符号的完整列表,因为我不知道文件的“不可见”符号列表(我的意思是:编辑文件时我看不到的符号)。
谢谢你的任何提示。