1

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

这是文本文件中的内容: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++;
    }
4

2 回答 2

1

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

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

详细地说,你应该有类似的东西:

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

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

于 2012-10-19T02:30:26.180 回答
0

Reut 的想法是正确的。您只分配给温度数组的最后一个元素。尝试:

for (int i = 0; temperatureFile.hasNext() && (i < 12); i++) {
    temperature[i] = temperatureFile.nextDouble();
}
于 2012-10-19T02:33:04.727 回答