Beginning Java:如何将输入文件传递到2D数组中

时间:2013-05-01 06:15:32

标签: java

我有一些问题需要理解Java在语法上要求程序运行。该程序应该读取输入文件,然后打印出其内容。一旦我这样做,我就会知道如何操纵它的内容。

例如,我的输入文件可能如下所示:

1 2 3 
4 5 6
7 8 9 

这是我的代码:

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

public class stats1 {

public static void main(String[] args) throws IOException {

Scanner s = new Scanner(new File("numbers.tex"));
int[][] numbers = new int[s.nextInt()][s.nextInt()];
for (int row = 0; row < numbers.length; row++)
    for(int col =0; col < numbers[row].length; col++)
      numbers[row][col]=s.nextInt(); 
      System.out.print(numbers[row][col] + " ");
  } 

}

1 个答案:

答案 0 :(得分:1)

第二次循环后您需要{}

for (int row = 0; row < numbers.length; row++)
    for(int col =0; col < numbers[row].length; col++) {
      numbers[row][col]=s.nextInt(); 
      System.out.print(numbers[row][col] + " ");
    }

我建议您也在外圈周围使用大括号,以防止将来出现此类错误。

请注意,在您的情况下,numbers.length将为1,numbers[row].length将为2.(因为您使用nextInt声明并定义了数组,该文件占用了1和2。

然后,你的循环只会在3和4上运行。所以你的输出将是3,4。

我建议你把第一行放在矩阵的维度上。并且为了看到“矩阵形状”,您需要在内部循环结束后打印一个空行。

或者,您可以先计算行数和列数,这样您就不需要在第一行添加维度。