我有一个文本文件,它看起来像这样:如何将文本文件中的双精度扫描到数组中?
苹果
10.1 20 11 21.3 31 12.7 22 32.4 42 13
第一行是公司名称,第二行代表股票价格。
我想扫描所有的双打到一个数组,以便我可以执行计算。
这里是我的代码
public static void main(String[] args) throws FileNotFoundException {
Scanner keyboard = new Scanner(System.in);
System.out.println("Select A File");
String FileName = keyboard.next();
Scanner linReader = new Scanner(new File(FileName));
double[] values = new double[10];
while (linReader.hasNextLine()) {
linReader.nextLine(); // skips company name
String line = linReader.nextLine();
// store following doubles into array
int nums = 0; //
if (linReader.hasNextDouble()) {
values[nums] = linReader.nextDouble();
nums++;
}
}
linReader.close();
System.out.println(Arrays.toString(values)); //prints out array 'values'
}
我选择的文件,然后我跳过第一行(其中包含公司名称)。
然后,我初始化一个数字以跟踪数组中的indeces。如果该行有另一个double,那么它将被添加到索引'num'处的数组,并且'num'将增加1,这应该继续,直到没有更多的双倍。
至少这是它背后的逻辑。但是输出永远是对
[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]
我不知道为什么出现这种情况或如何修理它。
'line'有所有的价值。 – Li357