嗨,我正在讀取一個文本文件並將每行(用逗號分隔)保存到一個數組中。唯一的問題是數組中的大多數元素都是double值,其中兩個元素是字符串。作爲這個的結果,我不得不使數組成爲一個String []數組。由於這個原因,只要我想對數組中的double值執行一些方程式,我必須首先將它們解析爲雙精度值。我從字面上運行這些方程的1000多次迭代,因此我的代碼不斷地將字符串解析爲雙精度。這是一個代價高昂的方式,它會減慢我的程序。有沒有更好的方法可以將字符串數組中的值轉換爲double值,或者在保存文本文件中的行時應該採取更好的方法嗎?由於Java - 將字符串轉換爲雙倍字符串的最有效方法
這裏是陣列的一個看起來像我已經從文本文件中讀取後:
String[] details = {"24.9", "100.0", "19.2" , "82.0", "Harry", "Smith", "45.0"};
我現在需要乘以第一2種元素,並添加到第3的總和,第4和第七個要素。換句話說,我只使用數字內容(被ofcourse保存爲字符串)
double score = (Double.parseDouble(details[0]) * Double.parseDouble(details[1])) + Double.parseDouble(details[2]) + Double.parseDouble(details[3]) + Double.parseDouble(details[6]);
我必須爲文本文件(超過1000行)每一行做到這一點。由於這個,我的程序運行非常緩慢。有沒有更好的方法,我可以將字符串值轉換爲雙精度?還是有更好的方法,我應該把它們放在首位呢?
編輯:我已經使用Profiler來檢查代碼的哪一部分是最慢的,它確實是我上面
爲什麼不只是將它們** **轉換一次**並存儲結果? – 2013-03-02 16:38:47
調用'Double.parseDouble()'5000次不會讓你的程序運行速度非常慢。 – NPE 2013-03-02 16:38:58
@OliCharlesworth - 每條線都不一樣。因此涉及到不同的值 – Matt9Atkins 2013-03-02 16:40:15