我有一個文本(file.txt)文件。該文件被加載到掃描儀內。修剪/刪除從字符串(從與Scanne.next()文件得到)的unde undered簡單來解析雙打Double.parseDouble()
在文件中有各種各樣的行,每行中有兩個雙精度和一個整數值除以空格。
像這樣:
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具有double值(如:1.0),所以Double.parseDouble(aux)應該可以工作。
那是什麼奇怪的是,它說,「AUX」是有點像(異常時啓動)「1.0(與」前)
有什麼辦法刪除每一個符號:像「或要麼 。或「bom」(如「特殊空間」)等?我的意思是......不需要指定完整的可能符號列表,因爲我不知道文件的「不可見」符號列表(我的意思是:編輯文件時看不到的符號)。
謝謝你的任何提示。
你的正則表達式有一個太多的加號。它應該是'[^ 0-9。] +'不''[^ 0-9。] ++'。 – phatfingers
@phatfingers我選擇使用佔有量詞。 –
不錯......我學到了一些新東西。我碰到的正則表達式測試者不支持它(但它不是基於Java的)。 – phatfingers