0

私は配列を試していますが、ユーザー入力に基づいて 2D 配列の要素を入力する方法を理解することはできますが、ユーザーに 2D 配列の行全体を個別に入力するように求める方法がわかりません (スペースを含む)。各番号の間) ではなく、各番号を入力してから Enter キーを押します。ここで助けてもらえますか?これは私の次のテストになると思います、ありがとう!

これが私のコードです:

import java.util.Scanner;

public class NewArray
{
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter the number of rows: ");
        int Rows = input.nextInt();
        System.out.print("Enter the number of columns: ");
        int Columns = input.nextInt();

        int[][] array = new int[Rows][Columns];

        System.out.println("Enter the numbers in array: ");
        for (int i = 0; i < array.length; i++) 
        {
            for (int j = 0; j < array[i].length; j++)
                array[i][j] = input.nextInt();
        }
        System.out.println(isConsecutiveFour(array));
    }
4

4 に答える 4

0

ループrows時間、およびString l = input.nextLine();

文字列を区切り文字で分割します(スペース、コンマ、またはセミコロンで定義できます)。

もちろん、検証ロジックを実装します。たとえば、Nanの場合、分割された配列のサイズが大文字とcolumns小文字が一致しないなど。

ところで、Javaの命名規則に基づいており、名前として、を使用する方が適切rowsですcolumns。そうでなければ、それらはクラスのように見えます...。

于 2013-02-19T00:14:54.907 に答える
0

さて、あなたはすべての行のためにそれらを促すことができます...

for (int i = 0; i < array.length; i++) {
  // Prompt user to enter column values for each row
  System.out.printf("Enter %d integers for row %d/%d (delimeted by spaces): ",
    columns, i+1, rows);
  for (int j = 0; j < array[i].length; j++)
    array[i][j] = input.nextInt();
}

出力

user@ubuntu:~$ java NewArray 
Enter the number of rows: 4
Enter the number of columns: 3
Enter the numbers in array: 
Enter 3 integers for row 1/4 (delimeted by spaces): 1 2 3
Enter 3 integers for row 2/4 (delimeted by spaces): 4 5 6
Enter 3 integers for row 3/4 (delimeted by spaces): 7 8 9
Enter 3 integers for row 4/4 (delimeted by spaces): 10 11 12
于 2013-02-19T00:15:01.820 に答える
0

あなたが求めることをする一つの方法は、彼らがタイプしたものを行全体として入力することです。次に、その行を調べて十分な値を確認し、必要な方法で入力されない場合は何らかの方法で失敗します。

問題は、それがユーザーにとって本当に苛立たしいことになるということです。10個の数字が必要で、ピリオドが必要な場所に誤ったカウントや余分なスペースがあるために9または11と入力された場合はどうなりますか?何をする?

多くは、プログラムが「正しく」実行していないユーザーにどのように応答するかに依存します。

したがって、入力する数が多すぎる場合は、最初の番号(必要な数まで)をエコーし​​て、それらを使用してもよいかどうかを尋ねることができます。次に、YまたはNと答えます。

入力が少なすぎる場合は、入力したものをエコーし​​てから、必要な数を入力するためにさらにいくつかの番号を要求することができます。

これはすべて、書くための多くのコードになり、厄介なものになる可能性があります。正しく取得する必要があります。そうしないと、ユーザーが混乱します。

別の可能な解決策は、彼らに1つずつ入力させ、あなたが彼らに情報をエコーし​​て、彼らがどこにいるかを知らせることです。「3行目に要素4を入力してください」のようなものは、彼らがそれを追跡するのに役立ちます。

おそらく、これを詳しく調べるほど、スタンドアロンアプリであろうとWebアプリケーションであろうと、今日の一般的なユーザーインターフェイスの価値を理解することができます。たとえば、Webでは、テキストボックスの行と列を含むフォームを表示し、一部のボックスが正しく入力されていない場合は、そのページを簡単に再表示できます。コンソールベースのユーザーインターフェイスは何年も前に使用されていましたが、まだまだ多くの要望があります。

于 2013-02-19T00:16:59.493 に答える