2012-02-16 3 views
0

完成したスドコボードの入力ファイルの行数と列数を調べようとしています。私は私が読んでいる私が持っている従来の方法から、このメソッドを作るためのアイデアを持って、数独ボードの入力ファイルの配列を作成し、このループで完成したスドクボードの行と列を数えて

public static Pair<Integer, Integer> rowColumnCount(Scanner input1){ 
    int nrows=0; 
    int ncolumns=0; 


    while(input1.hasNextLine()){ 

     while(input1.hasNextInt()){ 
      input1.nextInt(); 
      ncolumns++; 
     } 

     input1.nextLine(); 
     nrows++; 
    } 

    System.out.print("Rows: " +nrows + "\n"); 
    System.out.print("Columns: " +ncolumns + "\n"); 

    return new Pair<Integer, Integer>(nrows, ncolumns); 

    }//end rowCoulmnCount 

を作ってみました。私は2つの方法が似ていると考えましたが、nrwsとncolumnsのアウトプットは1 & 81です。だから誰かが列が数えられる正しい方法を見つけ出すのを助けてくれるかもしれません。行と列の値の比較を開始して、使用中の重複(1〜9)があるかどうかを確認して、正しい行数と列数があるかどうかを確認する方が良いでしょうか?

答えて

1

試してみてください。

public static Pair<Integer, Integer> rowColumnCount(Scanner input1){ 
    int nrows=0; 
    int ncolumns=0; 


    while(input1.hasNextLine()){ 
     Scanner subinput1 = new Scanner(input1.nextLine()); 
     while(subinput1.hasNextInt()){ 
      subinput1.nextInt(); 
      ncolumns++; 
     } 

     nrows++; 
    } 

    System.out.print("Rows: " +nrows + "\n"); 
    System.out.print("Columns: " +ncolumns + "\n"); 

    return new Pair<Integer, Integer>(nrows, ncolumns); 

    }//end rowCoulmnCount 
+0

私はnextInt()は、それが次の行に行かなければならない場合でも、次の整数を取得し、それが問題だと思います。私は現時点でそれを確認することはできません。 –

+0

これは、列を数える以外はほぼ完全に機能します。あなたのコードを使って周りを見回して列を数えることができるかどうかがわかります。しかし、もし私が新しいスキャナーサブインプット1を使う目的が何であるかを聞くことができたら? –

+0

最初のスキャナはファイルから行を読み取っており、2番目のスキャナは行からintを読み取っています –

関連する問題