Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中将数据文件添加到两个独立的2D数组中_Java_Arrays_Matrix - Fatal编程技术网

在Java中将数据文件添加到两个独立的2D数组中

在Java中将数据文件添加到两个独立的2D数组中,java,arrays,matrix,Java,Arrays,Matrix,我在使用Java程序时遇到了一些问题。我有一个txt数据文件,我将显示它,我需要将它添加到两个单独的数组中。文本文件有8行长,应该分成两个独立的4x4矩阵。关于这个程序的一些背景信息,读入两个数组,比较它们,输出同一索引的最大元素,并在单独的数组中输出它们。我似乎不知道如何将数据文件添加到两个单独的数组中。我的代码如下,提前谢谢 数据文件: 2 7 6 4 6 1 2 4 9 7 2 6 8 3 2 1 4 1 3 7 6 2 3 8 7 2 2 4 4 2 3 1 代码: 公共类prog46

我在使用Java程序时遇到了一些问题。我有一个txt数据文件,我将显示它,我需要将它添加到两个单独的数组中。文本文件有8行长,应该分成两个独立的4x4矩阵。关于这个程序的一些背景信息,读入两个数组,比较它们,输出同一索引的最大元素,并在单独的数组中输出它们。我似乎不知道如何将数据文件添加到两个单独的数组中。我的代码如下,提前谢谢

数据文件:

2 7 6 4
6 1 2 4
9 7 2 6
8 3 2 1
4 1 3 7
6 2 3 8
7 2 2 4
4 2 3 1
代码:

公共类prog465a
{
公共静态void main(字符串[]args){
扫描仪填充=空;
尝试
{ 
infle=新扫描仪(新文件(“prog465a.dat.txt”);
} 
catch(filenotfounde异常)
{ 
System.out.println(“未找到文件!”);
系统出口(0);
} 
int[]firstData=newint[4][4];
int[]secondData=新int[4][4];
int[]finalData=新int[4][4];
对于(int i=0;i<8;i++)
{
对于(int j=0;j<8;j++)
{
如果(i<4&&j<4){//尝试将前四行添加到一个矩阵中
firstData[i][j]=infle.nextInt();
}else如果(i>=4&&j>=4)
{
secondData[i][j]=infle.nextInt();
}
}
}
对于(int i=0;i<8;i++)
{
对于(int j=0;j<8;j++)
{
if(firstData[i][j]>=secondData[i][j])
{
firstData[i][j]=最终数据[i][j];
}
else if(secondData[i][j]>=firstData[i][j])
{
第二数据[i][j]=最终数据[i][j]
}
}
}
对于(int c=0;c< FialDATA长度;C++)
{
对于(int d=0;d
问题在于您试图解析一个包含8行8列的文件

更改此选项:

 int[][] finalData = new int[4][4];
    for (int i = 0; i< 8; i++)
    {
        for(int j = 0; j < 8; j++)
 int[][] finalData = new int[4][4];
    for (int i = 0; i< 8; i++)
    {
        for(int j = 0; j < 4; j++)
for (int i = 0; i< 8; i++)
    {
        for(int j = 0; j < 8; j++)
        {
           if (firstData[i][j] >= secondData[i][j])
           {
               firstData[i][j] = finalData[i][j]; 
            }
            else if (secondData[i][j] >= firstData[i][j])
            {
                secondData[i][j] = finalData[i][j]          
            }

        }
    }
for (int i = 0; i< 4; i++)
    {
        for(int j = 0; j < 4; j++)
        {

           if (firstData[i][j] >= secondData[i][j] )
           {
               finalData[i][j] = firstData[i][j]; 
            }
            else if (secondData[i][j] >= firstData[i][j])
            {
                finalData[i][j] = secondData[i][j] ;         
            }

        }
    }
int[]finalData=newint[4][4];
对于(int i=0;i<8;i++)
{
对于(int j=0;j<8;j++)
至:

 int[][] finalData = new int[4][4];
    for (int i = 0; i< 8; i++)
    {
        for(int j = 0; j < 8; j++)
 int[][] finalData = new int[4][4];
    for (int i = 0; i< 8; i++)
    {
        for(int j = 0; j < 4; j++)
for (int i = 0; i< 8; i++)
    {
        for(int j = 0; j < 8; j++)
        {
           if (firstData[i][j] >= secondData[i][j])
           {
               firstData[i][j] = finalData[i][j]; 
            }
            else if (secondData[i][j] >= firstData[i][j])
            {
                secondData[i][j] = finalData[i][j]          
            }

        }
    }
for (int i = 0; i< 4; i++)
    {
        for(int j = 0; j < 4; j++)
        {

           if (firstData[i][j] >= secondData[i][j] )
           {
               finalData[i][j] = firstData[i][j]; 
            }
            else if (secondData[i][j] >= firstData[i][j])
            {
                finalData[i][j] = secondData[i][j] ;         
            }

        }
    }
int[]finalData=newint[4][4];
对于(int i=0;i<8;i++)
{
对于(int j=0;j<4;j++)
这意味着8行文件,每行4列

同样,在forloop的第二部分中,您尝试获得8x8矩阵,它应该是4x4

更改:

 int[][] finalData = new int[4][4];
    for (int i = 0; i< 8; i++)
    {
        for(int j = 0; j < 8; j++)
 int[][] finalData = new int[4][4];
    for (int i = 0; i< 8; i++)
    {
        for(int j = 0; j < 4; j++)
for (int i = 0; i< 8; i++)
    {
        for(int j = 0; j < 8; j++)
        {
           if (firstData[i][j] >= secondData[i][j])
           {
               firstData[i][j] = finalData[i][j]; 
            }
            else if (secondData[i][j] >= firstData[i][j])
            {
                secondData[i][j] = finalData[i][j]          
            }

        }
    }
for (int i = 0; i< 4; i++)
    {
        for(int j = 0; j < 4; j++)
        {

           if (firstData[i][j] >= secondData[i][j] )
           {
               finalData[i][j] = firstData[i][j]; 
            }
            else if (secondData[i][j] >= firstData[i][j])
            {
                finalData[i][j] = secondData[i][j] ;         
            }

        }
    }
for(int i=0;i<8;i++)
{
对于(int j=0;j<8;j++)
{
if(firstData[i][j]>=secondData[i][j])
{
firstData[i][j]=最终数据[i][j];
}
else if(secondData[i][j]>=firstData[i][j])
{
第二数据[i][j]=最终数据[i][j]
}
}
}
至:

 int[][] finalData = new int[4][4];
    for (int i = 0; i< 8; i++)
    {
        for(int j = 0; j < 8; j++)
 int[][] finalData = new int[4][4];
    for (int i = 0; i< 8; i++)
    {
        for(int j = 0; j < 4; j++)
for (int i = 0; i< 8; i++)
    {
        for(int j = 0; j < 8; j++)
        {
           if (firstData[i][j] >= secondData[i][j])
           {
               firstData[i][j] = finalData[i][j]; 
            }
            else if (secondData[i][j] >= firstData[i][j])
            {
                secondData[i][j] = finalData[i][j]          
            }

        }
    }
for (int i = 0; i< 4; i++)
    {
        for(int j = 0; j < 4; j++)
        {

           if (firstData[i][j] >= secondData[i][j] )
           {
               finalData[i][j] = firstData[i][j]; 
            }
            else if (secondData[i][j] >= firstData[i][j])
            {
                finalData[i][j] = secondData[i][j] ;         
            }

        }
    }
for(int i=0;i<4;i++)
{
对于(int j=0;j<4;j++)
{
if(firstData[i][j]>=secondData[i][j])
{
最终数据[i][j]=第一数据[i][j];
}
else if(secondData[i][j]>=firstData[i][j])
{
最终数据[i][j]=第二数据[i][j];
}
}
}

非常感谢您的帮助!现在效果非常好!