Проблема со сканером - PullRequest
       20

Проблема со сканером

0 голосов
/ 13 февраля 2012

Как мне принять ввод от пользователя со сканера, а затем поместить этот ввод в 2D-массив. Это то, что у меня есть, но я не думаю, что это правильно:

public static void main(String[] args)
{
    Scanner in = new Scanner(System.in);
    int [][] a = new int[row][col];
    Scanner in = new Scanner(System.in);

    System.out.println("Enter a sequence of integers: ");
    while (in.hasNextInt())
    {
        int a[][] = in.nextInt();
        a [row][col] = temp;
        temp = scan.nextInt();
    }
    Square.check(temp);
}

Я пытаюсь создать двумерный массив и создать магический квадрат. Я выяснил логическую часть, мне просто нужна помощь с вводом последовательности чисел пользователей в массив, чтобы булевы методы могли проверять числа. Вся помощь очень ценится

Ответы [ 2 ]

2 голосов
/ 13 февраля 2012

Я не верю, что ваш код будет работать так, как вы этого хотите. Если я правильно понимаю ваш вопрос, вот что я бы сделал:

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);

    int [][] a = new int[row][col];

    for(int i = 0; i < row; i++) {
        for(int j = 0; j < col; j++) {
            System.out.print("Enter integer for row " + i + " col " + j + ": ");
            a[i][j] = in.nextInt();
        }
    }

    // Create your square here with the array
}

В циклах i - номер текущей строки, а j - номер текущей колонки. Он запросит у каждой комбинации строки / столбца.

0 голосов
/ 13 февраля 2012

Вы можете использовать это для одновременного ввода всех номеров:

int [][] a = new int[3][3];
Scanner in = new Scanner(System.in);

System.out.println("Enter a sequence of integers: ");
int row=0,col=0;
while (in.hasNextInt())
{
     a [row][col++] = in.nextInt();
     if(col>=3){
         col=0;
         row++;
     }
     if(row>=3)break;
}

Затем вы можете ввести:

1 2 3 4 5 6 7 8 9

для заполнения вашего массива.

...