2

我的问题很简单,我想读入一个文本文件并将文件的第一行存储为一个整数,并将文件的每一行存储到一个多维数组中。我正在考虑这样做的方式是创建一个 if 语句和另一个整数,当该整数为 0 时,将该行存储到整数变量中。虽然这看起来很愚蠢,但肯定有更简单的方法。

例如,如果文本文件的内容是:

4
1 2 3 4
4 3 2 1
2 4 1 3
3 1 4 2

第一行“4”将存储在一个整数中,每隔一行将进入多维数组。

public void processFile(String fileName){
    int temp = 0;
    int firstLine;
    int[][] array;
    try{
        BufferedReader input = new BufferedReader(new FileReader(fileName));
        String inputLine = null;

        while((inputLine = input.readLine()) != null){
            if(temp == 0){
                firstLine = Integer.parseInt(inputLine);
            }else{
                // Rest goes into array;
            }
            temp++;
        }
    }catch (IOException e){
        System.out.print("Error: " + e);
    }
}
4

3 回答 3

2

我故意不回答这个来为你做这件事。尝试一下:

  1. String.split
  2. 一行写着类似的东西array[temp-1] = new int[firstLine];
  3. 带有另一条线的内部for循环Integer.parseInt

这应该足以让你走完剩下的路

于 2012-12-03T01:55:53.230 回答
0

我将假设您知道如何使用文件 IO。我不是很有经验,但这就是我的想法:

while (inputFile.hasNext())
  {
     //Read the number
     String number = inputFile.nextLine();

     if(!number.equals(" ")){
       //Do what you need to do with the character here (Ex: Store into an array)
     }else{
       //Continue on reading the document
     } 
  }

祝你好运。

于 2012-12-03T02:02:39.150 回答
0

相反,您可以将文件的第一行存储为整数,然后进入一个 for 循环,在其中循环文件的其余行,将它们存储在数组中。这不需要if,因为您知道第一种情况首先发生,其他情况(数组)在之后发生。

于 2012-12-03T01:54:02.373 回答