2017-09-23 18 views
-2

私の現在のプロジェクトで、行列の作成方法と対称性を調べる際に問題が発生しています。私はそれに含まれる行の数とその列の数を表示する必要もあります。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 

私は何をしないのです/間違っている?二while

+0

コードをポストするだけでなく、あなたが何をしているのか説明できますか?たとえば、いくつかの行の背後にある意図を説明するコメントを追加するなど、読みやすくすることができます。 – Zabuza

+0

2つ目は見た目に届かないようです。また、そこに試されているものの面で読むことができません。 – nullpointer

+0

ようこそスタックオーバーフロー!あなたはあなたの質問に多くのコードを書いているので、私たち(そして将来の読者)にはどこに問題があるのか​​がはっきりしません。問題のコードを10行以下に減らしてください。参照:[最小限で完全で検証可能な例の作成方法](http://stackoverflow.com/help/mcve)と[小規模プログラムのデバッグ方法](https://ericlippert.com/2014/03/05)/how-to-debug-small-programs /)を実行します。 –

答えて

0

、あなたのinは、ファイルの終わりに達したとhasNext()はfalseを返します。