扫描仪输入问题

时间:2012-02-13 18:25:36

标签: java input magic-square

如何从扫描仪接收用户的输入,然后将该输入放入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);
}

我要做的是创建一个2D数组并创建一个魔术广场。我有布尔部分想通了,我只需要帮助将数字序列输入到数组中,这样布尔方法就可以测试数字。所有人都非常感谢

2 个答案:

答案 0 :(得分:2)

我不相信你的代码会按照你想要的方式运行。如果我正确理解您的问题,请按以下步骤操作:

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是当前列号。它将询问用户每个行/列的组合。

答案 1 :(得分:0)

您可以使用它来同时输入所有号码:

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

填充你的阵列。