从用户获取一个字符串并将其特征放入二维数组中

时间:2015-12-08 10:37:29

标签: java arrays loops multidimensional-array

我想让用户输入一个字符串,我想在二维数组中取其字符
第一个用户输入数组的大小为n * n数组,所以如果用户输入4,例如他使数组4 * 4 2d,我想在输入我的代码时打印输入

Scanner in=new Scanner(System.in);
int n=in.nextInt();
char arr[][]=new char[n][n];
String a;
for (int i=0;i<n;i++)
{
    a=in.next(); //Eneter the sting 
    for (int j=0;j<n;j++)
    {
        for (int k=0;k<n;k++)
        {
            arr[j][k]=a.charAt(j); //i get the character in the array
        }
    }
}
System.out.println(Arrays.deepToString(arr)); //to check the array

如果用户输入

4
...#
.#.#
.#..
####

输出

[[#, #, #, #], [#, #, #, #], [#, #, #, #], [#, #, #, #]]

预期输出为用户输入

[[., ., ., #], [., #, ., #], [., #, ., .], [#, #, #, #]]

我刚从2天开始java和2d阵列iam不太好了 如何在我预期的2d数组中填充它 最后我要打印数组中每个#的索引,例如在1 4 2 2中找到的第二行的2 3中找到的第一行,依此类推

2 个答案:

答案 0 :(得分:1)

试试这个, 它会工作!!

Scanner in=new Scanner(System.in);
    int n=in.nextInt();
    char arr[][]=new char[n][n];
    String a;
    for (int i=0;i<n;i++)
    {
        a = in.next();
        for (int j=0;j<n;j++)
        {
            arr[i][j]=a.charAt(j);             
        }
    }
    System.out.println(Arrays.deepToString(arr));

答案 1 :(得分:1)

你有太多的循环,这是你修改过的代码:

        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        char arr[][] = new char[n][n];
        String a;

        for (int i = 0; i < n; i++) {
            a = in.next(); //Eneter the sting

            for (int k = 0; k < n; k++) {

                arr[i][k] = a.charAt(k); //i get the character in the array
            }

        }
        System.out.println(Arrays.deepToString(arr));

// print indexes
        for (int i = 0; i < n; i++) {

                System.out.println("Line " + i);

                for (int k = 0; k < n; k++) {

                    if (arr[i][k] == '#') {
// (print i+1 and k+1 instead of i and k, if you prefer)
                        System.out.print(i + " " + k);
                    }
                }

                System.out.println();

            }