2017-09-23 90 views
-2

我有我的当前项目试图找出如何创建一个矩阵,看看它是否是对称的问题。我还需要显示它包含的行数和它有多少列。问题与二维阵列和对称

输入文件的数字:

3 
8 5 -6 7 
-19 5 17 32 
3 9 2 54 

这里是我到目前为止的代码:

import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.ArrayList; 
import java.util.Scanner; 

public class MatrixSymmetry { 

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

     File f = new File("testwork.txt"); 
     Scanner in = new Scanner(f); 
     int numRows = in.nextInt(); 

     ArrayList<Integer> columnCheck = new ArrayList<Integer>(); 
     int numColumns = 0; 

     while (in.hasNextLine()) { 
      Scanner scnr = new Scanner(in.nextLine()); 
      numColumns++; 

      while (scnr.hasNextInt()) { 
       columnCheck.add(scnr.nextInt()); 
      } 
      scnr.close(); 
     } 

     while (in.hasNext()) { 
      String matrix = in.nextLine(); 
      Scanner matrixScan = new Scanner(matrix); 

      int[][] numArray = new int[numRows][numColumns]; 

      for (int i = 0; i < numRows; i++) { 

       for (int j=0; j < numColumns; j++) { 

        numArray[i][j] = matrixScan.nextInt(); 

        if (numArray[i][j] == numArray[j][i]) { 
         System.out.println("The Matrix is Symmetric"); 
        } 
        else { 
         System.out.println("The Matrix is not Symmetric"); 
        } 
       } 
      } 
      matrixScan.close(); 
     } 
     System.out.println("Number of rows: " + numRows + 
         "\nNumber of columns: " + numColumns); 
      in.close(); 
    } 
} 

我收到的输出是:

Number of rows: 3 
Number of columns: 4 

我在想什么/做错了?

+0

而不是只发布代码,你能解释你做了什么吗?比较容易阅读,例如添加解释某些行背后意图的注释。 – Zabuza

+0

第二次虽然看起来不可见。此外,它在那里试用的内容不可读。 – nullpointer

+0

欢迎来到Stack Overflow!你已经在你的问题中发布了很多代码,这使得我们(以及未来的读者)不清楚问题出在哪里。请将您的问题代码减少到10行或更少。请参阅:[如何创建最小,完整和可验证示例](http://stackoverflow.com/help/mcve)和[如何调试小程序](https://ericlippert.com/2014/03/05 /如何调试的小程序/)。 –

回答

0

在第二个while中,您的in已到达文件末尾,hasNext()将返回false。