有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

无法在java中打印字符数组?可能是编码的?

我今天想开始一个小项目,但我遇到了一个奇怪的错误(至少对我来说是这样)。 给定一个字符数组,我无法使用for循环打印这些数字

这是代码

public class Grid
{
    public static char[][] matrix = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
    };

    public static void draw()
    {
        for(int i = 0; i < 3; i++)
        {
            for(int j = 0; j < 3; j++)
            {
                System.out.print(matrix[i][j]);
            }
            System.out.print("\n");
        }
    }
}

这是主要课程

public class Main
{
    public static void main(String[] args)
    {
        Grid.draw();
    }
}

输出





我不明白问题出在哪里,因为如果我从“char[][]切换到“int[][],一切正常吗? 代码在我看来很正常,有人能解释一下如何修复吗?为什么会这样? 谢谢:)


共 (3) 个答案

  1. # 1 楼答案

    用单引号将字符括起来。”1','2'....

  2. # 2 楼答案

    字符数组必须使用单引号(“”)初始化,这是您能够使用int[]但在char[]中出现错误的唯一原因

  3. # 3 楼答案

    您的数组是2D char数组。这意味着它里面的一切都是char。当你System.out.println((char) 1);时,它会打印ASCII字符“id”等于1,谁知道这个字符是什么(对我来说,它打印的字符我的浏览器无法显示)。为了看得更清楚,做System.out.println((char) 65);。您将看到输出为'A',因为在ASCII中,“A”是65个字符

    如果要打印1、2、3等,则必须向该数组的每个单元格值添加一个引号(让java知道它们是字符),这意味着打印时,它将执行System.out.println('1');。或者你会给出ASCII码。1是49。所以System.out.println((char) 49);将打印1