Java入门:如何将输入文件传递到2D数组
我在理解Java在语法上希望程序工作的内容时遇到了一些问题。程序应该读取输入文件,然后打印出其内容。一旦我这样做了,我就会知道如何操纵它的内容 例如,我的输入文件可能如下所示:Java入门:如何将输入文件传递到2D数组,java,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 { Sca
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] + " ");
}
}
import java.util.Scanner;
导入java.io.*;
公营班级1{
公共静态void main(字符串[]args)引发IOException{
扫描仪s=新扫描仪(新文件(“numbers.tex”);
int[][]数字=新int[s.nextInt()][s.nextInt()];
for(int row=0;row
在第二个循环之后,您需要一个{
和}
:
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] + " ");
}
for(int row=0;row
我建议您在外循环周围也使用大括号,以防止将来出现此类错误
请注意,在本例中,numbers.length
将为1,numbers[row]。length
将为2。(因为您使用nextInt
声明并定义了数组,它从文件中获取了1和2
然后,您的循环将只在3和4上运行。因此,您的输出将是3,4
我建议你把矩阵的尺寸放在第一行。为了看到“矩阵形状”,你需要在内环完成后打印一条空行
或者,您可以先计算行数和列数,这样您就不需要在第一行中添加维度。那么?它不起作用?它会出错?问题是什么?查看代码,我已经发现第二个for循环中需要一个括号。for(col..){//numbers and system out statement}+1到@Jeremyyunruh。始终在块周围使用大括号,即使它们只包含一条指令。更一致、更易于阅读,并且不会出现错误。我用括号修复了它,但它不会读取所有数字。第一行是否包含2D数组的预期大小?或者,在读取整个文件之前,您不会知道它?