我有一些问题需要理解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] + " ");
}
}
答案 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。
我建议你把第一行放在矩阵的维度上。并且为了看到“矩阵形状”,您需要在内部循环结束后打印一个空行。
或者,您可以先计算行数和列数,这样您就不需要在第一行添加维度。