2017-01-08 29 views
0

私はJavaでコンソール解決ソフトウェアを使っています。nextInt()同じ行のJava入力

私がしようとしているのは、各 ""と入力してください。

ユーザがINTを入力して「ENTER」を押すと、ブレークしてマトリックスデザインが破られます。

これは、これまでの私のコードです:

Scanner scanner = new Scanner(System.in);//.useDelimiter("\\s+"); 

    for(int i = 0; i < matrix.length; i++) { 
     System.out.print("| "); 
     for(int j = 0; j < matrix[i].length; j++) { 
      matrix[i][j] = scanner.nextInt(); 
     } 
     System.out.print("|"); 
     System.out.println(""); 
    } 
    scanner.close(); 
    System.out.println("Done"); 

任意のアイデア?

ありがとうございます!

+0

'nextInt()'問題が何であるか、改行を消費しません。 – Natecat

+0

Enterキーの動作を変更することはできませんが、ユーザーが行全体を入力するまで待ちません – Moira

答えて

1

私はこれができないと思うので、私は別の方法を提案します:

代わりEnterを使用し、すべてのあなたの値を書き込むとスペースかでそれらを分離しない理由をラインに戻るには、特定区切り、あなたがプレスを終了するときは、次のように次の行をスキャンするために次の行に戻るには次のように入力します

1 2 3 4 5 
5 6 7 8 9 

次に、あなたは、このように自分の価値観を取得することができます:

String line = scan.nextLine(); 
String[] row = line.split(" "); 

次に、String[]を使用してint値を取得しますか?

これはあなたを助けることができます。

0

コンソールモードでは、enterと入力します。これはブレークラインです。

あなたは違ったことを行うことができ、あなたの問題を解決するには、次の

  • あなたがフォーマットについて考慮することなく、ユーザー入力を取ります。
  • 各入力の後、マトリックスオブジェクトの実際の結果が再表示されます。
    このように、ユーザーは必要に応じて書式を設定し、次の数字の位置を特殊文字で表示することもできます。あなたの実際のコードでは

それは次のようになります。

Scanner scanner = new Scanner(System.in);//.useDelimiter("\\s+"); 

for(int i = 0; i < matrix.length; i++) { 
    for(int j = 0; j < matrix[i].length; j++) { 
     matrix[i][j] = scanner.nextInt(); 
     displayActualMatrix(matrix) 
    } 
} 
scanner.close(); 
System.out.println("Done"); 
... 

private void displayActualMatrix(int[][] matrix){ 
    for(int i = 0; i < matrix.length; i++) { 
     for(int j = 0; j < matrix[i].length; j++) { 
       // rendering the matrix 
      } 
     } 
    ... 
} 
関連する問題