文件扫描并分成2个独立的阵列

时间:2015-11-13 22:41:51

标签: java arrays file int

该程序应该读取一个名为data.txt的文件,其中包含年份和温度......

1  1950  11
2  1950  22
3  1950  65
4  1950  103
5  1950  99

然后将它们分成两个独立的数组并打印出来,如下所示......

(1950, 11)
(1950, 22)
(1950, 65)
(1950, 103)
(1950, 99)

但是我很难搞清楚如何使用数组将两个整数分开。

由于

这是我目前的代码

import java.util.Scanner;
import java.io.*;
public class ReadFile {

    public static void main(String[] args) throws FileNotFoundException {
        Scanner input = new Scanner(new File("data.txt"));
        int[] year = new int[];
        for(int i = 0; i < year; i++) {
            year[i] = input.nextInt();
            System.out.println(year);
        }

        //int[] temperature = new int[150];
    }
}

1 个答案:

答案 0 :(得分:0)

您拥有的代码甚至无法编译。您需要指定int数组的大小,例如:

int[] year = new int[1024];

循环需要与数组的长度进行比较,而不是与数组本身进行比较:

for(int i = 0; i < year.length; i++) {

当您尝试打印年份时,您将再次处理数组,而不是单个数字,并最终会使用[I@7ea987ac之类的内容。因此,如果要打印的数组元素,请指定索引。

System.out.println(year[i]);

由于您只想打印数字,我不知道为什么您首先需要一个数组。

不使用数组也可以省去正确猜测它需要多大的麻烦。只需阅读并打印,直到完成所有输入。

您还需要忽略示例输入中的行号。

import java.util.Scanner;
import java.io.*;

public class ReadFile {
    public static void main(String[] args) throws FileNotFoundException {
        Scanner input = new Scanner(new File("data.txt"));
        while (input.hasNext()) {
            input.nextInt(); // dummy line number
            int year = input.nextInt();
            int temp = input.nextInt();
            System.out.println("(" + year + ", " + temp + ")");
        }
    }
}