1

我有一个 5 行 5 列的 2D 数组,全部填充值 0。我怎样才能让我的程序做到这一点:

  1. 输入任意行和列的任意组合,如 2-5,不带 [] 括号。只需输入 2-5 就足以让我的程序理解我的意思是第 2 行第 5 列

  2. 将我输入的值分配给行列组合中的所述数组。

这是我到目前为止得到的。如您所见,我只设法输出了所有数组元素的值。

import java.util.*;

public class stink {

    public static void main(String[]args){
        int[][] kuk = new int[5][5];
        printMatrix(kuk);
    }

    public static void printMatrix(int[][] matrix)
    {
        for (int row = 0; row < matrix.length; row++)
        {
            for (int col = 0; col < matrix[row].length; col++)
                System.out.printf("%2d", matrix[row][col]);
            System.out.println();
        }
    }
}
4

3 回答 3

2

您应该使用 Java API 中的 Scanner 类来获取用户的输入,如下面的代码所示。使用分隔符传递输入,例如如果您想要 2X3 数组传递,例如 2-3,其中“-”是分隔符。这是String扫描器java API 的链接。

        Scanner sc = new Scanner(System.in);
    System.out.println("please enter two numbers");
    String inputs = sc.next();
    int a=Integer.valueOf(inputs.split("-")[0]);
    int b=Integer.valueOf(inputs.split("-")[1]);;
    System.out.println(a + " " + b);
    int[][] x = new int[a][b];
    System.out.println(x.length);
于 2012-09-22T22:45:19.520 回答
0

这不是一个复制/粘贴准备好的答案,但它至少应该给你一个关于如何处理这个问题的指示。

        int rows = 0;
        int columns = 0;
        Scanner scan = new Scanner(System.in);
        System.out.println("Rows: ");
        rows = scan.nextInt();
        System.out.println("Columns: ");
        columns = scan.nextInt();           
        int[][] kuk = new int[rows][columns];
于 2012-09-22T22:36:55.490 回答
0
import java.util.*;
public class stink
{
    public static void main(String[]args)
    {
        int[][] kuk = new int[5][5];
        // Where x and y are keys, integer is the integer you want to push
        pushIntoMatrix(kuk, x, y, integer);
        //kuk = pushIntoMatrix(kuk, x, y, integer); // Use if you want the method to return a value.
    }
    public static void pushIntoMatrix(int[][] matrix, int x, int y, int integer)
    //public static int[][] pushIntoMatrix(int[][] matrix, int x, int y, int integer) // Use if you want to return the array.
    {
        matrix[x][y] = integer;
        //return matrix; // Use if you want to return the array.
    }
}

如您所知,Java 中任何非原始数据类型都是引用,因此将 kuk 数组传递给方法会影响实际的数组引用。如果需要,可以在 pushIntoMatrix() 中设置返回值,但不是必须的。

于 2012-09-22T22:37:37.637 回答