2012-10-19 97 views
0

我想要做的是从文本值中获取值,然后将它们放入双精度数组中。这是我的,但它没有达到我的目标,并打印出我不想要的东西。我不能在这里使用数组列表,只是数组。将文本文件分配给数组

这是什么,是在文本文件中:70.3 70.8 73.8 77.0 80.7 83.4 84.5 84.4 83.4 80.2 76.3 72.0

代码:

Scanner temperatureFile = new Scanner(new File("KeyWestTemp.txt")); 
    double [] temperature = new double[12]; 

    while(temperatureFile.hasNext()) 
    { 
     temperature[index] = temperatureFile.nextDouble(); 
     index++; 
    } 
+0

确保您将'index'初始化为零。然后通过在while循环内输出值来检查你从'Scanner'得到的数字是否正确。 –

回答

1

我认为这是问题,但我可能是错了:-)

temperature[11] = temperatureFile.nextDouble(); // index? 

要细说,你应该是这样的:

i = 0; // index 'runner' 
while(temperatureFile.hasNext()) 
{ 
    temperature[i] = temperatureFile.nextDouble(); 
    i++; 
} 

但是,这不是通用的,你应该在声明数组大小之前估计大小。

+0

Ahh我忘了那部分,但是当我使用索引并且每次增加1时它仍然不能正确显示。 – user1713336

+0

它有什么问题? –

+0

出于某种原因,我的输出是这个“[D @ 81b1fb”。这真的很奇怪 – user1713336

0

Reut有正确的想法。你只能分配到温度数组的最后一个元素。尝试:

for (int i = 0; temperatureFile.hasNext() && (i < 12); i++) { 
    temperature[i] = temperatureFile.nextDouble(); 
} 
+0

这有帮助,但出于某种原因,我在输出时会得到这个结果。 “[d @ 81b1fb”。那随机的字符串不是我想要的。 – user1713336