嗨,我正在读取一个文本文件并将每行(用逗号分隔)保存到一个数组中。唯一的问题是数组中的大多数元素都是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