Java程序在文件中找不到列数

Java程序在文件中找不到列数,java,arrays,Java,Arrays,因此,我从一个文件中得到了一个2D数组,我试图从该文件中找到行数和列数。我成功地找到了行数,但对于列,我无法找到。我的数据在文件中由选项卡分隔 array.txt 4 5 1 9 0 3 4 5 0 5 2 7 7 4 5 当您运行代码时,当前的输出是什么 columns = infile.nextLine().split("\t").length; 是0吗?还是4?如果是4,那么你总是要加1,因为每行只有4个制表符……而且

因此,我从一个文件中得到了一个2D数组,我试图从该文件中找到行数和列数。我成功地找到了行数,但对于列,我无法找到。我的数据在文件中由选项卡分隔

array.txt

4   5   1   9   0
3   4   5   0   5
2   7   7   4   5


当您运行代码时,当前的输出是什么

        columns = infile.nextLine().split("\t").length;
是0吗?还是4?如果是4,那么你总是要加1,因为每行只有4个制表符……而且,使用空格或制表符作为分隔符会很脆弱,我建议用逗号代替


如果输出为0,这可能意味着文本文件中的制表符在代码中不表示为制表符,也不等于“\t”

当您运行代码时,该制表符的当前输出是什么

        columns = infile.nextLine().split("\t").length;
是0吗?还是4?如果是4,那么你总是要加1,因为每行只有4个制表符……而且,使用空格或制表符作为分隔符会很脆弱,我建议用逗号代替


如果输出为0,这可能意味着文本文件中的制表符在代码中不表示为制表符,并且不等于“\t”

此代码循环直到文件结束:

 while(infile.hasNextLine())
 {
     rows++;
     infile.nextLine();
 }
因此,对
if(infle.hasNextLine())
的后续调用总是返回false


您应该重新创建扫描仪并重新开始读取文件,或者从计算第一行的列开始,然后计算剩余的行数。

此代码循环直到文件结束:

 while(infile.hasNextLine())
 {
     rows++;
     infile.nextLine();
 }
因此,对
if(infle.hasNextLine())
的后续调用总是返回false

您应该重新创建扫描仪并重新读取文件,或者从计算第一行的列开始,然后计算剩余的行数