【问题标题】:How do I print a 2D array of char[][]?如何打印 char[][] 的二维数组?
【发布时间】:2020-11-17 18:50:46
【问题描述】:

我制作了char[][] 的二维数组。我想使用 ASCII 码打印小写字母。 我编写了代码,但没有得到预期的结果。我哪里错了?

我知道如果我修复像 answercode 这样的代码,它会很好地工作。但是我想知道为什么当我使用我的代码时什么都没有发生,即使控制台中没有a

这是我的代码:

package array;

public class Alphabet {
    public static void main(String[] args) {
        char[][] alphabets = new char[13][2];
        alphabets[0][0] = 'a';
        for (int i = 0; i < alphabets.length; i++) {
            for (int j = 0; j < alphabets[i].length; j++) {
                System.out.print(alphabets[i][j]);
                alphabets[i][j]++;
            }
            System.out.println();
        }
    }
}

预期的输出是:

a b
c d
e f
...
...
y z

【问题讨论】:

  • 您的代码为我打印了“a”。
  • 你的预期输出是什么?
  • 我上传了我的预期输出
  • 我看不到任何输出
  • 是什么让你认为它应该打印 a,b,..z 范围?它应该从哪里获取这些值?是什么让您认为这些价值观存在?

标签: java arrays multidimensional-array char


【解决方案1】:

您的代码运行良好,但您看不到字母,因为您没有将所有 char 放入 char[][]

因此,您可以创建一个名为 populate 的简单方法,如下所示:

private static void populate(char[][] alphabets) {
    char c = 'a';
    for (int i = 0; i < alphabets.length; i++) {
        for (int j = 0; j < alphabets[i].length; j++) {
            if (c <= 'z') { //we want from 'a' to 'z'
                alphabets[i][j] = c;
                c++; //get the next letter
            }//if
        }//for
    }//for
}//populate

您可以调用此方法而不是 alphabets[0][0] = 'a';。所以主要代码是:

public static void main(String[] args) {
    //Create char[][]
    char[][] alphabets = new char[13][2];

    //populate char[][]
    populate(alphabets);

    //print the output
    for (int i = 0; i < alphabets.length; i++) {
        for (int j = 0; j < alphabets[i].length; j++) {
            System.out.print(alphabets[i][j]);
            alphabets[i][j]++;
        }
        System.out.println();
    }
}

这是输出(我在jdoodle 上测试过):

【讨论】:

    猜你喜欢
    • 2011-03-02
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 2015-02-03
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多